mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 18:18:18 +00:00
Add crazy shotguns. Need to test
This commit is contained in:
parent
619f7cb268
commit
512597f729
|
@ -55,6 +55,9 @@ vec2 CProjectile::GetPos(float Time)
|
|||
return CalcPos(m_Pos, m_Direction, Curvature, Speed, Time);
|
||||
}
|
||||
|
||||
void CProjectile::SetBouncing(int Value) {
|
||||
m_Bouncing = Value;
|
||||
}
|
||||
|
||||
void CProjectile::Tick()
|
||||
{
|
||||
|
@ -73,7 +76,7 @@ void CProjectile::Tick()
|
|||
if(m_Owner >= 0)
|
||||
OwnerChar = GameServer()->GetPlayerChar(m_Owner);
|
||||
|
||||
CCharacter *TargetChr = GameServer()->m_World.IntersectCharacter(PrevPos, ColPos, (m_Freeze) ? 1.0f : 6.0f, ColPos, OwnerChar);//TODO êàæåòñÿ òóò áàã ñ äâèæåíèåì âî ôðèçå
|
||||
CCharacter *TargetChr = GameServer()->m_World.IntersectCharacter(PrevPos, ColPos, (m_Freeze) ? 1.0f : 6.0f, ColPos, OwnerChar);
|
||||
|
||||
if(m_LifeSpan > -1)
|
||||
m_LifeSpan--;
|
||||
|
|
|
@ -9,6 +9,7 @@ public:
|
|||
|
||||
vec2 GetPos(float Time);
|
||||
void FillInfo(CNetObj_Projectile *pProj);
|
||||
void SetBouncing(int Value);
|
||||
|
||||
virtual void Reset();
|
||||
virtual void Tick();
|
||||
|
|
|
@ -156,6 +156,51 @@ bool IGameController::OnEntity(int Index, vec2 Pos)
|
|||
}
|
||||
}
|
||||
}
|
||||
else if(Index >= ENTITY_CRAZY_SHOTGUN_U_EX && Index <= ENTITY_CRAZY_SHOTGUN_L_EX)
|
||||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
if (Index - ENTITY_CRAZY_SHOTGUN_U_EX == i)
|
||||
{
|
||||
float Deg = i*(pi/2);
|
||||
CProjectile *bullet = new CProjectile(&GameServer()->m_World,
|
||||
WEAPON_SHOTGUN, //Type
|
||||
-1, //Owner
|
||||
Pos, //Pos
|
||||
vec2(sin(Deg),cos(Deg)), //Dir
|
||||
-2, //Span
|
||||
true, //Freeze
|
||||
true, //Explosive
|
||||
0,
|
||||
SOUND_GRENADE_EXPLODE,
|
||||
WEAPON_SHOTGUN);
|
||||
bullet->SetBouncing(2 - (i % 2));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(Index >= ENTITY_CRAZY_SHOTGUN_U && Index <= ENTITY_CRAZY_SHOTGUN_L)
|
||||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
if (Index - ENTITY_CRAZY_SHOTGUN_U == i)
|
||||
{
|
||||
float Deg = i*(pi/2);
|
||||
CProjectile *bullet = new CProjectile(&GameServer()->m_World,
|
||||
WEAPON_SHOTGUN, //Type
|
||||
-1, //Owner
|
||||
Pos, //Pos
|
||||
vec2(sin(Deg),cos(Deg)), //Dir
|
||||
-2, //Span
|
||||
true, //Freeze
|
||||
false, //Explosive
|
||||
0,
|
||||
SOUND_GRENADE_EXPLODE,
|
||||
WEAPON_SHOTGUN);
|
||||
bullet->SetBouncing(2 - (i % 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(Index == ENTITY_ARMOR_1)
|
||||
Type = POWERUP_ARMOR;
|
||||
|
|
Loading…
Reference in a new issue