tele-activator: make delay be able to specify a weapon

This commit is contained in:
Ryozuki 2018-10-26 17:05:21 +02:00
parent ddf2e6af36
commit 3d202883c9
2 changed files with 22 additions and 0 deletions

View file

@ -200,6 +200,15 @@ void CLaser::DoBounce()
int TileFIndex = GameServer()->Collision()->GetFTileIndex(MapIndex);
bool IsSwitchTeleGun = GameServer()->Collision()->IsSwitch(MapIndex) == TILE_ALLOW_TELE_GUN;
if(IsSwitchTeleGun) {
// Delay specifies which weapon the tile should work for.
// Delay = 0 means all.
int delay = GameServer()->Collision()->GetSwitchDelay(MapIndex);
if((delay != 3 && delay != 0) && m_Type == WEAPON_RIFLE)
IsSwitchTeleGun = false;
}
// Teleport is canceled if the last bounce tile is not a TILE_ALLOW_TELE_GUN.
// Teleport also works if laser didn't bounce.
m_TeleportCancelled =

View file

@ -179,6 +179,19 @@ void CProjectile::Tick()
int TileFIndex = GameServer()->Collision()->GetFTileIndex(MapIndex);
bool IsSwitchTeleGun = GameServer()->Collision()->IsSwitch(MapIndex) == TILE_ALLOW_TELE_GUN;
if(IsSwitchTeleGun) {
// Delay specifies which weapon the tile should work for.
// Delay = 0 means all.
int delay = GameServer()->Collision()->GetSwitchDelay(MapIndex);
if(delay == 1 && m_Type != WEAPON_GUN)
IsSwitchTeleGun = false;
if(delay == 2 && m_Type != WEAPON_GRENADE)
IsSwitchTeleGun = false;
if(delay == 3 && m_Type != WEAPON_RIFLE)
IsSwitchTeleGun = false;
}
if (TileIndex == TILE_ALLOW_TELE_GUN
|| TileFIndex == TILE_ALLOW_TELE_GUN
|| IsSwitchTeleGun