1
This commit is contained in:
parent
d593b8f126
commit
8438d583af
@ -105,6 +105,7 @@ enum InventorySlot_e
|
||||
IS_SHIELD_WALL = 22, //盾墙
|
||||
IS_SINGAL_GUN = 23, //信号枪
|
||||
IS_SHEN_BAO = 24, //肾上腺速
|
||||
IS_OIL_BUCKET = 25, //汽油桶
|
||||
|
||||
IS_MAX = 30,
|
||||
IS_END
|
||||
|
@ -198,6 +198,10 @@ void MapInstance::CreateTerrain()
|
||||
for (auto idx : terrain->grass()) {
|
||||
grasses.insert(idx + 1);
|
||||
}
|
||||
std::set<int> mountain_tops;
|
||||
for (auto idx : terrain->mountain_top()) {
|
||||
mountain_tops.insert(idx + 1);
|
||||
}
|
||||
|
||||
int mask = A8_DEFINE_RANGE_BIT(int, 0, 22);
|
||||
for (auto layer : *layers) {
|
||||
@ -235,6 +239,9 @@ void MapInstance::CreateTerrain()
|
||||
} else if (grasses.find(grid_val) != grasses.end()) {
|
||||
a8::SetBitFlag(collider_tag, kColliderTag_Grass);
|
||||
assert(collider_tag > 0);
|
||||
} else if (mountain_tops.find(grid_val) != mountain_tops.end()) {
|
||||
a8::SetBitFlag(collider_tag, kColliderTag_MountainTop);
|
||||
assert(collider_tag > 0);
|
||||
}
|
||||
if (collider_tag != 0) {
|
||||
assert(w < 300 && h < 300);
|
||||
|
@ -945,45 +945,3 @@ std::string MetaMgr::GetText(const std::string& textid, const std::string& def_t
|
||||
auto itr = loader_->text_hash.find(textid);
|
||||
return itr != loader_->text_hash.end() ? itr->second : def_text;
|
||||
}
|
||||
|
||||
int MetaMgr::GetSpecMapAreaBuffId(int tag)
|
||||
{
|
||||
switch (tag) {
|
||||
case kColliderTag_Grass:
|
||||
return kInGrassBuffId;
|
||||
case kColliderTag_Water:
|
||||
return kInWaterBuffId;
|
||||
case kColliderTag_Ice:
|
||||
return kInIceBuffId;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int MetaMgr::GetSpecMapAreaEnterTime(int tag)
|
||||
{
|
||||
switch (tag) {
|
||||
case kColliderTag_Grass:
|
||||
return grass_invisible_time;
|
||||
case kColliderTag_Water:
|
||||
return water_invisible_time;
|
||||
case kColliderTag_Ice:
|
||||
return ice_invisible_time;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int MetaMgr::GetSpecMapAreaLeaveTime(int tag)
|
||||
{
|
||||
switch (tag) {
|
||||
case kColliderTag_Grass:
|
||||
return grass_show_time;
|
||||
case kColliderTag_Water:
|
||||
return water_show_time;
|
||||
case kColliderTag_Ice:
|
||||
return ice_show_time;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -56,9 +56,6 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
MetaData::Robot* RandRobot(std::set<int>& refreshed_robot_set);
|
||||
MetaData::AI* GetAI(int ai_level, int ai_mode);
|
||||
std::string GetText(const std::string& textid, const std::string& def_text="");
|
||||
int GetSpecMapAreaBuffId(int tag);
|
||||
int GetSpecMapAreaEnterTime(int tag);
|
||||
int GetSpecMapAreaLeaveTime(int tag);
|
||||
|
||||
int gas_inactive_time = 10;
|
||||
int newbie_gas_inactive_time = 5;
|
||||
|
@ -88,6 +88,11 @@ void Obstacle::RecalcSelfCollider()
|
||||
permanent_map_service->AddCollider(self_collider2_);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
abort();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!self_collider_) {
|
||||
@ -101,6 +106,9 @@ void Obstacle::RecalcSelfCollider()
|
||||
collider->tag = collider_tag;
|
||||
collider->param1 = collider_param1;
|
||||
collider->param2 = collider_param2;
|
||||
if (meta->i->attack_type() == 3) {
|
||||
a8::SetBitFlag(collider->tag, kHalfWallTag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -474,7 +482,7 @@ bool Obstacle::Attackable()
|
||||
|
||||
bool Obstacle::Throughable()
|
||||
{
|
||||
return meta->i->attack_type() == 2;
|
||||
return meta->i->attack_type() == 2 || meta->i->attack_type() == 3;
|
||||
}
|
||||
|
||||
int Obstacle::GetTeamId(Room* room)
|
||||
|
Loading…
x
Reference in New Issue
Block a user