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