添加坦克压人逻辑
This commit is contained in:
parent
559eec5146
commit
6917e2f42b
@ -108,12 +108,7 @@ void Bullet::ProcBomb()
|
||||
std::set<Entity*> objects;
|
||||
for (auto& grid : grid_list) {
|
||||
for (Human* hum: grid->human_list) {
|
||||
#if 1
|
||||
{
|
||||
#else
|
||||
if (hum != player &&
|
||||
(hum->team_id == 0 || player->team_id != hum->team_id)) {
|
||||
#endif
|
||||
if (!is_tank_skin || player->team_id != hum->team_id) {
|
||||
if (TestCollision(hum)) {
|
||||
objects.insert(hum);
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ class Bullet : public Entity
|
||||
a8::Vec2 born_pos;
|
||||
a8::Vec2 born_dir;
|
||||
float fly_distance = 0.0f;
|
||||
bool is_tank_skin = false;
|
||||
MovementComponent* movement = nullptr;
|
||||
|
||||
Bullet();
|
||||
|
@ -349,7 +349,7 @@ void Human::TankShot(a8::Vec2& target_dir)
|
||||
bullet_dir.Rotate(bullet_angle / 180.0f);
|
||||
room->frame_event.AddBullet(this, bullet_born_pos, bullet_dir, fly_distance);
|
||||
if (room->BattleStarted() || (room->gas_data.gas_mode == GasJump && !a8::HasBitFlag(status, HS_Jump))) {
|
||||
room->CreateBullet(this, &tank_weapon, bullet_born_pos, bullet_dir, fly_distance);
|
||||
room->CreateBullet(this, &tank_weapon, bullet_born_pos, bullet_dir, fly_distance, true);
|
||||
}
|
||||
}
|
||||
--tank_weapon.ammo;
|
||||
|
@ -541,7 +541,7 @@ int Room::CreateLoot(int equip_id, a8::Vec2 pos, int count, int equip_lv)
|
||||
}
|
||||
|
||||
void Room::CreateBullet(Human* hum, Weapon* weapon,
|
||||
a8::Vec2 pos, a8::Vec2 dir, float fly_distance)
|
||||
a8::Vec2 pos, a8::Vec2 dir, float fly_distance, bool is_tank_skin)
|
||||
{
|
||||
Bullet* bullet = new Bullet();
|
||||
bullet->player = hum;
|
||||
@ -554,6 +554,7 @@ void Room::CreateBullet(Human* hum, Weapon* weapon,
|
||||
bullet->born_pos = pos;
|
||||
bullet->born_dir = dir;
|
||||
bullet->fly_distance = fly_distance;
|
||||
bullet->is_tank_skin = is_tank_skin;
|
||||
bullet->entity_uniid = AllocUniid();
|
||||
bullet->Initialize();
|
||||
AddObjectLater(bullet);
|
||||
|
@ -78,7 +78,7 @@ public:
|
||||
Hero* CreateHero(Human* hum);
|
||||
int CreateLoot(int equip_id, a8::Vec2 pos, int count, int equip_lv);
|
||||
void CreateBullet(Human* hum, Weapon* weapon,
|
||||
a8::Vec2 pos, a8::Vec2 dir, float fly_distance);
|
||||
a8::Vec2 pos, a8::Vec2 dir, float fly_distance, bool is_tank_skin = false);
|
||||
|
||||
void OnHumanDie(Human* hum);
|
||||
bool OverBorder(const a8::Vec2 pos, float radius);
|
||||
|
Loading…
x
Reference in New Issue
Block a user