This commit is contained in:
aozhiwei 2021-06-11 10:35:51 +08:00
parent d593b8f126
commit 8438d583af
5 changed files with 17 additions and 46 deletions

View File

@ -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

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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)