示例#1
0
        void Start()
        {
            if (this.system == null)
            {
                this.system = Indexed.GetSingle <IPotentialFieldSystem>();
            }

            this.nodeSources = new PotentialFieldNodeSource[sourceConfigs.Length];

            var maxAge = 0;

            for (int i = 0; i < this.sourceConfigs.Length; i++)
            {
                var conf = sourceConfigs[i];

                this.nodeSources[i]            = this.source.AddNodeSource(conf.sourceKey, conf.layers, conf.potential);
                this.nodeSources[i].Calculator = conf.calculator as IPotentialCalculator;
                this.nodeSources[i].Flow       = conf.flow;
                this.nodeSources[i].Enabled    = conf.enabled;

                maxAge = Mathf.Max(conf.age, maxAge);
            }

            this.nodeHistory = new IFieldNodeRef[maxAge + 1];

            this.Spawned();
        }
示例#2
0
        public override TaskResult Run(ITaskNode node)
        {
            Debug.LogFormat("LevelControl: {0}", this.Action);

            var level = Indexed.GetSingle <ILevelSystem>();

            switch (this.Action)
            {
            case ControlKind.Pause:
                level.PauseLevel();
                break;

            case ControlKind.Resume:
                level.ResumeLevel();
                break;

            case ControlKind.Start:
                level.StartLevel();
                break;

            case ControlKind.Stop:
                level.StopLevel();
                break;

            case ControlKind.ResetState:
                level.ResetState();
                break;

            default:
                throw new InvalidOperationException(string.Format("Unsupported {0} value {1}", typeof(ControlKind), this.Action));
            }

            return(TaskResult.Success);
        }
示例#3
0
 void Spawned()
 {
     if (this.system == null)
     {
         this.system = Indexed.GetSingle <IPotentialFieldSystem>();
     }
 }
示例#4
0
        public override TaskResult Run(ITaskNode node)
        {
            var levelRating = Indexed.GetSingle <LevelRating>();

            levelRating.Calculate();

            return(TaskResult.Success);
        }
示例#5
0
        public override TaskResult Run(ITaskNode node)
        {
            var level = Indexed.GetSingle <ILevelSystem>();

            level.Configure(level.LevelNumber + 1);

            return(TaskResult.Success);
        }
示例#6
0
        public override TaskResult Run(ITaskNode node)
        {
            var levelSchemaSys = Indexed.GetSingle <ILevelSchemaSystem>();

            var schema = levelSchemaSys.Schemas[levelSchemaSys.Schemas.Count - 1];

            levelSchemaSys.SelectSchema(schema);
            levelSchemaSys.BuildLevel();

            return(TaskResult.Success);
        }
示例#7
0
        public override TaskResult Run(ITaskNode node)
        {
            var levelSchemaSys = Indexed.GetSingle <ILevelSchemaSystem>();

            var builder = levelSchemaSys.Builders[Random.Range(0, levelSchemaSys.Builders.Length)];
            var schema  = builder.BuildSchema(0f);

            levelSchemaSys.AddSchema(schema);

            return(TaskResult.Success);
        }
示例#8
0
        void Spawned()
        {
            if (this.PotentialField == null)
            {
                this.PotentialField = Indexed.GetSingle <IPotentialFieldSystem>();
            }

            if (this.navigateOnStart && this.PotentialField != null)
            {
                // TODO: Consider moving this into Update() to handle the transform position being set after spawning.
                this.StartNavigating();
            }
        }
示例#9
0
        public override TaskResult Run(ITaskNode node)
        {
            var levelRating = Indexed.GetSingle <LevelRating>();
            var unit        = node.Context.GetGameObject().GetComponent <Unit>();

            unit.strength.Configure(1f, levelRating.CalculateLinear(unit.strengthRating));
            unit.strength.Value = unit.strength.Max;

            unit.health.Configure(0f, levelRating.CalculateLinear(unit.healthRating));
            unit.health.Value = unit.health.Max;

            return(TaskResult.Success);
        }
示例#10
0
        public override TaskResult Run(ITaskNode node)
        {
            var levelSchemaSys = Indexed.GetSingle <ILevelSchemaSystem>();

            if (levelSchemaSys.Schemas.Count == 0)
            {
                levelSchemaSys.BuildRandomSchema();
            }

            var schema = levelSchemaSys.Schemas[Random.Range(0, levelSchemaSys.Schemas.Count)];

            levelSchemaSys.SelectSchema(schema);
            levelSchemaSys.BuildLevel();

            return(TaskResult.Success);
        }
示例#11
0
 void OnPostInject()
 {
     this.system = Indexed.GetSingle <ScoreSystem>();
 }
示例#12
0
 void Recycled()
 {
     Indexed.GetSingle <IMindSystem>().StopMind(this);
 }
示例#13
0
 void Spawned()
 {
     Indexed.GetSingle <IMindSystem>().StartMind(this);
 }
示例#14
0
 void Start()
 {
     Indexed.GetSingle <IMindSystem>().Add(this);
 }