添加草丛处理
This commit is contained in:
parent
bdb8afab0d
commit
ef44eaf024
@ -126,7 +126,11 @@ void AndroidAI::DoAttack()
|
||||
}
|
||||
if (owner->updated_times % 10 == 0) {
|
||||
Human* enemy = owner->room->FindEnemy((Human*)owner);
|
||||
if (enemy && !enemy->HasBuffEffect(BET_Invincible) && !enemy->HasBuffEffect(BET_Hide)) {
|
||||
if (enemy &&
|
||||
!enemy->HasBuffEffect(BET_Invincible) &&
|
||||
!enemy->HasBuffEffect(BET_Hide) &&
|
||||
!enemy->HasBuffEffect(BET_InGrass)
|
||||
) {
|
||||
Human* sender = (Human*)owner;
|
||||
a8::Vec2 shot_dir = enemy->pos - sender->pos;
|
||||
if (std::abs(shot_dir.x) > FLT_EPSILON ||
|
||||
|
@ -25,7 +25,7 @@ Android::~Android()
|
||||
void Android::Initialize()
|
||||
{
|
||||
Human::Initialize();
|
||||
SetSkinInfo(15001);
|
||||
SetSkinInfo(MetaMgr::Instance()->RandTank());
|
||||
GiveEquip();
|
||||
skin_meta = MetaMgr::Instance()->GetTank(SkinId());
|
||||
if (skin_meta) {
|
||||
|
@ -189,7 +189,7 @@ enum BuffEffectType_e
|
||||
BET_Begin = 0,
|
||||
BET_ChgAttr = 1, //改变属性
|
||||
BET_Vertigo = 2, //眩晕
|
||||
BET_Unuse = 3, //
|
||||
BET_InGrass = 3, //在草丛
|
||||
BET_LastBurn = 4, //持续灼烧
|
||||
BET_Invincible = 5, //无敌
|
||||
BET_Hide = 6, //隐身
|
||||
|
@ -1542,8 +1542,8 @@ void Human::ProcBuffEffect(Buff* buff)
|
||||
void Human::OnAttack()
|
||||
{
|
||||
if (a8::HasBitFlag(status, HS_InGrass)) {
|
||||
if (HasBuffEffect(BET_Hide)) {
|
||||
RemoveBuffByEffectId(BET_Hide);
|
||||
if (HasBuffEffect(BET_InGrass)) {
|
||||
RemoveBuffByEffectId(BET_InGrass);
|
||||
}
|
||||
if (grass_hide_timer_list_) {
|
||||
room->xtimer.ModifyTimer(grass_hide_timer_list_,
|
||||
|
@ -64,6 +64,7 @@ public:
|
||||
std::map<std::string, std::tuple<int, int>> maptpl_size_hash;
|
||||
std::map<int, MetaData::Dress*> dress_hash;
|
||||
std::map<int, MetaData::Tank*> tank_hash;
|
||||
std::vector<int> tankid_list;
|
||||
std::map<int, MetaData::Driver*> driver_hash;
|
||||
std::map<int, MetaData::Skill*> skill_hash;
|
||||
std::map<int, MetaData::Buff*> buff_hash;
|
||||
@ -206,6 +207,7 @@ private:
|
||||
item.i = &meta;
|
||||
item.Init();
|
||||
tank_hash[item.i->id()] = &item;
|
||||
tankid_list.push_back(meta.id());
|
||||
}
|
||||
|
||||
for (auto& meta : driver_meta_list) {
|
||||
@ -486,6 +488,11 @@ MetaData::Tank* MetaMgr::GetTank(int tank_id)
|
||||
return itr != loader_->tank_hash.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
int MetaMgr::RandTank()
|
||||
{
|
||||
return !loader_->tankid_list.empty() ? loader_->tankid_list[rand() % loader_->tankid_list.size()] : 0;
|
||||
}
|
||||
|
||||
float MetaMgr::GetRankRewardParam(int rank)
|
||||
{
|
||||
auto itr = loader_->rankreward_hash.find(rank);
|
||||
|
@ -38,6 +38,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
MetaData::Dress* GetDress(int dress_id);
|
||||
MetaData::Driver* GetDriver(int driver_id);
|
||||
MetaData::Tank* GetTank(int tank_id);
|
||||
int RandTank();
|
||||
float GetRankRewardParam(int rank);
|
||||
float GetKillRewardParam(int kill_num);
|
||||
std::vector<MetaData::Robot>* GetRobotList();
|
||||
|
Loading…
x
Reference in New Issue
Block a user