public override void OnInteract(DynamicObj player = null) { if (bCollected) { return; } if (item.OnInteract(player)) { // Add item to inventory g_engine.GiveItem(item); } bCollected = true; }
public override void Behaviour(float fElapsedTime, DynamicObj player = null) { if (Health <= 0) { vx = 0; vy = 0; SolidVsDynamic = false; IsAttackable = false; return; } if (player != null) { // För att jaga player. // no default behaviour // Check if player is nearby float fTargetX = player.px - px; float fTargetY = player.py - py; float fDistance = (float)Math.Sqrt(fTargetX * fTargetX + fTargetY * fTargetY); m_fStateTick -= fElapsedTime; if (m_fStateTick <= 0.0f) // för att inte göra beslut så ofta. { if (fDistance < 6.0f) { vx = (fTargetX / fDistance) * 2.0f; vy = (fTargetY / fDistance) * 2.0f; if (fDistance < 1.5f) // för att attakera med projektil { PerformAttack(); } } else { vx = 0; vy = 0; } m_fStateTick += 1.0f; } } }
public virtual void OnInteract(DynamicObj player = null) { }
} //gfx. // Vet i fasiken vad det är han menar. ska den ha en instance av OneLoneCoder_NachoGame ? //public virtual void DrawSelf(olcConscoleGameEngineOOP graphics, float ox, float oy){} //gfx. // Vet i fasiken vad det är han menar. ska den ha en instance av OneLoneCoder_NachoGame ? /// <summary> /// Elapsed time /// </summary> /// <param name="el"></param> public virtual void Update(float elapsedTime, DynamicObj player = null) { }
public override void Update(float elapsedTime, DynamicObj player) { if (m_fKnockBackTimer > 0.0f) { vx = m_fKnockBackDX * 10.0f; vy = m_fKnockBackDY * 10.0f; IsAttackable = false; m_fKnockBackTimer -= elapsedTime; if (m_fKnockBackTimer <= 0.0f) { m_fStateTick = 0.0f; Controllable = true; IsAttackable = true; } } else { // En bubbla av tid som förflyttar sig oberoende av resten av spelets state. Skapar ett slags pendel, gissar jag på. Timer += elapsedTime; if (Timer >= 0.2f) { Timer -= 0.2f; // tänkt att "ocilera" (vad fan det nu är på svenska). ticka mellan 0 och 1 GraphicCounter++; GraphicCounter %= 2; } if (Math.Abs(vx) > 0 || Math.Abs(vy) > 0) //fabs? { sprGraphicsState = GraphicsState.Walking; } else { sprGraphicsState = GraphicsState.Standing; } if (Health <= 0) { sprGraphicsState = GraphicsState.Dead; } if (vx < -0.1f) { FacingDirection = Direction.WEST; } if (vx > 0.1f) { FacingDirection = Direction.EAST; } if (vy < -0.1f) { FacingDirection = Direction.NORTH; } if (vy > 0.1f) { FacingDirection = Direction.SOUTH; } Behaviour(elapsedTime, player); } }
} //gfx. // Vet i fasiken vad det är han menar. ska den ha en instance av OneLoneCoder_NachoGame ? public virtual void Behaviour(float fElapsedTime, DynamicObj player = null) { }
public override void Update(float elapsedTime, DynamicObj player = null) { //does nothing }