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_SHIELD_WALL = 22, //盾墙
IS_SINGAL_GUN = 23, //信号枪 IS_SINGAL_GUN = 23, //信号枪
IS_SHEN_BAO = 24, //肾上腺速 IS_SHEN_BAO = 24, //肾上腺速
IS_OIL_BUCKET = 25, //汽油桶
IS_MAX = 30, IS_MAX = 30,
IS_END IS_END

View File

@ -198,6 +198,10 @@ void MapInstance::CreateTerrain()
for (auto idx : terrain->grass()) { for (auto idx : terrain->grass()) {
grasses.insert(idx + 1); 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); int mask = A8_DEFINE_RANGE_BIT(int, 0, 22);
for (auto layer : *layers) { for (auto layer : *layers) {
@ -235,6 +239,9 @@ void MapInstance::CreateTerrain()
} else if (grasses.find(grid_val) != grasses.end()) { } else if (grasses.find(grid_val) != grasses.end()) {
a8::SetBitFlag(collider_tag, kColliderTag_Grass); a8::SetBitFlag(collider_tag, kColliderTag_Grass);
assert(collider_tag > 0); 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) { if (collider_tag != 0) {
assert(w < 300 && h < 300); 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); auto itr = loader_->text_hash.find(textid);
return itr != loader_->text_hash.end() ? itr->second : def_text; 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::Robot* RandRobot(std::set<int>& refreshed_robot_set);
MetaData::AI* GetAI(int ai_level, int ai_mode); MetaData::AI* GetAI(int ai_level, int ai_mode);
std::string GetText(const std::string& textid, const std::string& def_text=""); 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 gas_inactive_time = 10;
int newbie_gas_inactive_time = 5; int newbie_gas_inactive_time = 5;

View File

@ -88,6 +88,11 @@ void Obstacle::RecalcSelfCollider()
permanent_map_service->AddCollider(self_collider2_); permanent_map_service->AddCollider(self_collider2_);
} }
break; break;
default:
{
abort();
}
break;
} }
} }
if (!self_collider_) { if (!self_collider_) {
@ -101,6 +106,9 @@ void Obstacle::RecalcSelfCollider()
collider->tag = collider_tag; collider->tag = collider_tag;
collider->param1 = collider_param1; collider->param1 = collider_param1;
collider->param2 = collider_param2; 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() 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) int Obstacle::GetTeamId(Room* room)