示例#1
0
 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);
     }
 }
示例#2
0
        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);
            }
        }