Exemplo n.º 1
0
 public void Init(IActorController actorController, IActorInitializer actorInitializer, IUiConfig uiConfig, IGameConfig gameConfig)
 {
     _actorController  = actorController;
     _actorInitializer = actorInitializer;
     _uiConfig         = uiConfig;
     _gameConfig       = gameConfig;
 }
Exemplo n.º 2
0
        public static Func <WAngle> WorldFacingFromInit(IActorInitializer init, TraitInfo info, WAngle defaultFacing)
        {
            // (Dynamic)TurretFacingInit is specified relative to the actor body.
            // We need to add the body facing to return an absolute world angle.
            Func <WAngle> bodyFacing = null;
            var           facingInit = init.GetOrDefault <FacingInit>();

            if (facingInit != null)
            {
                var facing = facingInit.Value;
                bodyFacing = () => facing;
            }

            var turretFacingInit = init.GetOrDefault <TurretFacingInit>(info);

            if (turretFacingInit != null)
            {
                var facing = turretFacingInit.Value;
                return(bodyFacing != null ? (Func <WAngle>)(() => bodyFacing() + facing) : () => facing);
            }

            var dynamicFacingInit = init.GetOrDefault <DynamicTurretFacingInit>(info);

            if (dynamicFacingInit != null)
            {
                return(bodyFacing != null ? () => bodyFacing() + dynamicFacingInit.Value() : dynamicFacingInit.Value);
            }

            return(bodyFacing ?? (() => defaultFacing));
        }
Exemplo n.º 3
0
        public static Func <int> TurretFacingFromInit(IActorInitializer init, TraitInfo info, int defaultFacing, string turret = null)
        {
            if (turret != null)
            {
                Func <int> getFacing;
                var        dynamicTurretFacingsInit = init.GetOrDefault <DynamicTurretFacingsInit>();
                if (dynamicTurretFacingsInit != null && dynamicTurretFacingsInit.Value.TryGetValue(turret, out getFacing))
                {
                    return(getFacing);
                }

                int facing;
                var turretFacingsInit = init.GetOrDefault <TurretFacingsInit>();
                if (turretFacingsInit != null && turretFacingsInit.Value.TryGetValue(turret, out facing))
                {
                    return(() => facing);
                }
            }

            var turretFacingInit = init.GetOrDefault <TurretFacingInit>(info);

            if (turretFacingInit != null)
            {
                var facing = turretFacingInit.Value;
                return(() => facing);
            }

            var dynamicFacingInit = init.GetOrDefault <DynamicFacingInit>();

            if (dynamicFacingInit != null)
            {
                return(dynamicFacingInit.Value);
            }

            var facingInit = init.GetOrDefault <FacingInit>();

            if (facingInit != null)
            {
                var facing = facingInit.Value;
                return(() => facing);
            }

            return(() => defaultFacing);
        }
Exemplo n.º 4
0
        public Func <WAngle> LocalFacingFromInit(IActorInitializer init)
        {
            var turretFacingInit = init.GetOrDefault <TurretFacingInit>(this);

            if (turretFacingInit != null)
            {
                var facing = turretFacingInit.Value;
                return(() => facing);
            }

            var dynamicFacingInit = init.GetOrDefault <DynamicTurretFacingInit>(this);

            if (dynamicFacingInit != null)
            {
                return(dynamicFacingInit.Value);
            }

            return(() => InitialFacing);
        }
Exemplo n.º 5
0
        public static Func <int> TurretFacingFromInit(IActorInitializer init, int def, string turret = null)
        {
            if (turret != null && init.Contains <DynamicTurretFacingsInit>())
            {
                Func <int> facing;
                if (init.Get <DynamicTurretFacingsInit, Dictionary <string, Func <int> > >().TryGetValue(turret, out facing))
                {
                    return(facing);
                }
            }

            if (turret != null && init.Contains <TurretFacingsInit>())
            {
                int facing;
                if (init.Get <TurretFacingsInit, Dictionary <string, int> >().TryGetValue(turret, out facing))
                {
                    return(() => facing);
                }
            }

            if (init.Contains <TurretFacingInit>())
            {
                var facing = init.Get <TurretFacingInit, int>();
                return(() => facing);
            }

            if (init.Contains <DynamicFacingInit>())
            {
                return(init.Get <DynamicFacingInit, Func <int> >());
            }

            if (init.Contains <FacingInit>())
            {
                var facing = init.Get <FacingInit, int>();
                return(() => facing);
            }

            return(() => def);
        }
Exemplo n.º 6
0
        public static int GetInitialTurretFacing(IActorInitializer init, int def, string turret = null)
        {
            if (turret != null && init.Contains <TurretFacingsInit>())
            {
                int facing;
                if (init.Get <TurretFacingsInit, Dictionary <string, int> >().TryGetValue(turret, out facing))
                {
                    return(facing);
                }
            }

            if (init.Contains <TurretFacingInit>())
            {
                return(init.Get <TurretFacingInit, int>());
            }

            if (init.Contains <FacingInit>())
            {
                return(init.Get <FacingInit, int>());
            }

            return(def);
        }
Exemplo n.º 7
0
 public Func <WAngle> WorldFacingFromInit(IActorInitializer init)
 {
     return(WorldFacingFromInit(init, this, InitialFacing));
 }
Exemplo n.º 8
0
 public static Func <WAngle> TurretFacingFromInit(IActorInitializer init, TurretedInfo info)
 {
     return(TurretFacingFromInit(init, info, info.InitialFacing));
 }
Exemplo n.º 9
0
 public OilPatch(IActorInitializer init, OilPatchInfo info)
 {
     this.info      = info;
     this.resources = info.Amount == 0 ? init.World.WorldActor.TraitOrDefault <OilAmount>().Amount : info.Amount;
     this.burnTotal = this.info.FullAmount * init.World.WorldActor.TraitOrDefault <OilBurn>().Amount / 100;
 }