CLaser::CLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEnergy, int Owner) : CModAPI_EntitySnapshot07(pGameWorld, MOD_ENTTYPE_LASER, Pos, 1) { m_Owner = Owner; m_Energy = StartEnergy; m_Dir = Direction; m_Bounces = 0; m_EvalTick = 0; GameWorld()->InsertEntity(this); DoBounce(); }
CLaser::CLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEnergy, int Owner) : CEntity(pGameWorld, CGameWorld::ENTTYPE_LASER, Pos) { m_Owner = Owner; m_Energy = StartEnergy; m_Dir = Direction; m_Bounces = 0; m_EvalTick = 0; GameWorld()->InsertEntity(this); DoBounce(); }
void CLaser::Tick() { float Delay; if (m_TuneZone) Delay = GameServer()->TuningList()[m_TuneZone].m_LaserBounceDelay; else Delay = GameServer()->Tuning()->m_LaserBounceDelay; if(Server()->Tick() > m_EvalTick+(Server()->TickSpeed()*Delay/1000.0f)) DoBounce(); }
CScientistLaser::CScientistLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEnergy, int Owner, int Dmg) : CEntity(pGameWorld, CGameWorld::ENTTYPE_LASER) { m_Dmg = Dmg; m_Pos = Pos; m_Owner = Owner; m_Energy = StartEnergy; m_Dir = Direction; m_Bounces = 0; m_EvalTick = 0; GameWorld()->InsertEntity(this); DoBounce(); }
CLaser::CLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEnergy, int Owner, int Type) : CEntity(pGameWorld, CGameWorld::ENTTYPE_LASER) { m_Pos = Pos; m_Owner = Owner; m_Energy = StartEnergy; m_Dir = Direction; m_Bounces = 0; m_EvalTick = 0; m_Type = Type; GameWorld()->InsertEntity(this); DoBounce(); m_TeamMask = GameServer()->GetPlayerChar(Owner) ? GameServer()->GetPlayerChar(Owner)->Teams()->TeamMask(GameServer()->GetPlayerChar(Owner)->Team(), -1, m_Owner) : 0; }
CLaser::CLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEnergy, int Owner, int Damage, int ExtraInfo) : CEntity(pGameWorld, CGameWorld::ENTTYPE_LASER) { m_Damage = Damage; m_ExtraInfo = ExtraInfo; m_Pos = Pos; m_Owner = Owner; m_Energy = StartEnergy; m_Dir = Direction; //if (StartEnergy > 200) // m_Bounces = 2; //else m_Bounces = 0; m_EvalTick = 0; GameWorld()->InsertEntity(this); DoBounce(); }
CLaser::CLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEnergy, int Owner, int Type) : CEntity(pGameWorld, CGameWorld::ENTTYPE_LASER) { m_Pos = Pos; m_Owner = Owner; m_Energy = StartEnergy; m_Dir = Direction; m_Bounces = 0; m_EvalTick = 0; m_TelePos = vec2(0,0); m_WasTele = false; m_Type = Type; m_TuneZone = GameServer()->Collision()->IsTune(GameServer()->Collision()->GetMapIndex(m_Pos)); m_TeamMask = GameServer()->GetPlayerChar(Owner) ? GameServer()->GetPlayerChar(Owner)->Teams()->TeamMask(GameServer()->GetPlayerChar(Owner)->Team(), -1, m_Owner) : 0; GameWorld()->InsertEntity(this); DoBounce(); }
void CLaser::Tick() { if(Server()->Tick() > m_EvalTick+(Server()->TickSpeed()*GameServer()->Tuning()->m_LaserBounceDelay)/1000.0f) DoBounce(); }