void MomentFeature_AIState(AcceptibleWaysToDie circumstance, AIStates aIStates, BodyType bodyType = BodyType.None) { if (circumstance == AcceptibleWaysToDie.killBox) { switch (aIStates) { case (AIStates.Stunned): if (bodyType == BodyType.Player) { CurrentFeature.pointValue = 50; CurrentFeature.description = "Depossession"; } else { CurrentFeature.pointValue = 100; CurrentFeature.description = "DUNK"; } break; case (AIStates.Chasing): CurrentFeature.pointValue = 50; CurrentFeature.description = "Bait"; break; } } else { switch (aIStates) { case (AIStates.Stunned): CurrentFeature.pointValue = 100; CurrentFeature.description = "Kick 'em while they're down"; break; case (AIStates.Chasing): case (AIStates.Positioning): CurrentFeature.pointValue = 50; CurrentFeature.description = "Killing Blow"; break; case (AIStates.Attacking): case (AIStates.ImmediateAttack): CurrentFeature.pointValue = 50; CurrentFeature.description = "Parry"; break; case (AIStates.Following): CurrentFeature.pointValue = 100; CurrentFeature.description = "Bullying"; break; case (AIStates.Roaming): CurrentFeature.pointValue = 80; CurrentFeature.description = "Cold blooded murder"; break; default: CurrentFeature.pointValue = 10; CurrentFeature.description = "Something cool"; break; } } }
public void AwardPointsForBodyKilled(Vector3 eventPosition, EnemyController corpse, AcceptibleWaysToDie circumstance) { if (corpse is EnemyController && !RecentlyKilledEnemies.Contains(corpse)) { //t_feature is whatever kill info we want MomentFeature_AIState(circumstance, corpse.AIMentalState, corpse.lastDamageSource is CharacterBody ? corpse.lastDamageSource.bodyType : BodyType.None); RecentlyKilledEnemies.Add(corpse); //add to queued messages if (CurrentFeature.pointValue == 0) { return; } QueuedMoments.Add(CurrentFeature); UnqueuedMoments.Remove(CurrentFeature); } }