public static void AddEnemyActions(EnemyRoute enemyRoute, IList <RecordData> records) { foreach (var record in records) { var mixedDataRecord = record as MixedDataRecord; if (mixedDataRecord.Records.Count != 2) { continue; } AddEnemyAction(enemyRoute, mixedDataRecord); } }
private static void AddEnemyAction(EnemyRoute enemyRoute, MixedDataRecord mixedDataRecord) { var actionName = mixedDataRecord.GetStringValue(0); var multipleRecords = mixedDataRecord.GetMultipleRecords(1); EnemyAction action; if (actionName == MoveAction) { action = GetMoveAction(multipleRecords); } else if (actionName == RotateAction) { action = GetRotateAction(multipleRecords); } else if (actionName == PauseAction) { action = GetPauseAction(multipleRecords); } else if (actionName == EnterDoorAction) { action = GetEnterDoorAction(multipleRecords); } else if (actionName == LieDown) { action = new LieDownAction(); } else if (actionName == GetUp) { action = new GetUpAction(); } else if (actionName == KneelDown) { action = new KneelDownAction(); } else if (actionName == DiveIn) { action = new DiveInAction(); } else if (actionName == DiveOut) { action = new DiveOutAction(); } else { return; } enemyRoute.Actions.Add(action); }
public static void PopulateRoutes(EnemyCharacter enemy, MultipleRecords multipleRecords) { enemy.DefaultRoute = multipleRecords.GetStringValue(DefaultRoute); var routes = multipleRecords.GetMixedDataRecord(Routes); foreach (var route in routes) { var record = route as MultipleRecords; var enemyActions = new EnemyRoute(); enemyActions.RouteName = record.GetStringValue(RouteName); enemyActions.Speed = record.GetStringValue(StringConstants.Speed); enemyActions.ActionRepeatType = record.GetStringValue(StringConstants.EnemyActionType); EnemyActionHelper.AddEnemyActions(enemyActions, record.GetMixedDataRecord(ActionStep)); enemy.Routes.Add(enemyActions); } }