Exemplo n.º 1
0
        public RaonLauncherMineSS(Mobile mobile, Vector2 position, Action onMineIsDestroyed)
            : base(mobile, position, MobileType.RaonLauncherMineSS)
        {
            MobileFlipbook = MobileFlipbook.CreateMobileFlipbook(MobileType.RaonLauncherMineSS, position);
            MobileFlipbook.ChangeState(ActorFlipbookState.Stand, true);

            this.onMineIsDestroyed = onMineIsDestroyed;

            Movement = new RaonLauncherMineSSAutomatedMovement(this);

            Movement.CollisionOffset     = 10;
            Movement.MaximumStepsPerTurn = Parameter.ProjectileRaonLauncherSSMineMaximumStepsPerTurn;

            if (mobile.Facing == Facing.Right)
            {
                Flip();
            }

            CollisionBox = new CollisionBox(this, new Rectangle(0, 0, 8, 8), new Vector2(0, 5));

            ((AutomatedMovement)Movement).OnInvalidMovemenAttempt += Flip;
            ((AutomatedMovement)Movement).OnRemaningMovementEnds  += OnCollide;

            GrantTurn();
        }
Exemplo n.º 2
0
 public override void ChangeFlipbookState(ActorFlipbookState NewState, bool Force = false)
 {
     if (NewState == MobileFlipbook.State || NewState == ActorFlipbookState.Stand)
     {
         return;
     }
     MobileFlipbook.ChangeState(NewState, Force);
 }
Exemplo n.º 3
0
        public Mobile(Player player, Vector2 position, MobileType mobileType, bool IsSummon = false) : base()
        {
            ProjectileList              = new List <Projectile>();
            UnusedProjectile            = new List <Projectile>();
            LastCreatedProjectileList   = new List <Projectile>();
            UninitializedProjectileList = new List <Projectile>();
            ItemsUnderEffectList        = new List <ItemType>();

            MobileType = mobileType;
            Owner      = player;

            movingSE       = AssetHandler.Instance.RequestSoundEffect(SoundEffectParameter.MobileMovement(mobileType));
            unableToMoveSE = AssetHandler.Instance.RequestSoundEffect(SoundEffectParameter.MobileUnableToMove(mobileType));

            this.IsSummon = IsSummon;

            IsPlayable = GameInformation.Instance.IsOwnedByPlayer(this) && !IsSummon;

            if (IsPlayable)
            {
                Movement = new LocalMovement(this);
            }
            else if (!IsSummon)
            {
                Movement = new RemoteMovement(this);
            }

            MobileMetadata = MobileMetadata.BuildMobileMetadata(player, mobileType);

            Position       = position;
            MobileFlipbook = MobileFlipbook.CreateMobileFlipbook(MobileType, position);

            if (!IsSummon)
            {
                Rider = new Rider(this);

                if (MobileType != MobileType.Random)
                {
                    Crosshair = new Crosshair(this);
                }
            }

            //Sync
            SyncMobile                = new SyncMobile();
            SyncMobile.Owner          = player;
            SyncMobile.Position       = Position.ToArray <int>();
            SyncMobile.MobileMetadata = MobileMetadata.BuildMobileMetadata(player, player.PrimaryMobile);
            SyncPosition              = Position;

            IsAlive                = true;
            IsActionsLocked        = false;
            hasShotSequenceStarted = false;

#if DEBUG
            DebugHandler.Instance.Add(debugCrosshair);
            DebugHandler.Instance.Add(debugCrosshair2);
#endif
        }
Exemplo n.º 4
0
        public RaonLauncherMineS2(Mobile mobile, Vector2 position) : base(mobile, position, MobileType.RaonLauncherMineS2)
        {
            MobileFlipbook = MobileFlipbook.CreateMobileFlipbook(MobileType.RaonLauncherMineS2, position);
            MobileFlipbook.ChangeState(ActorFlipbookState.Dormant, true);

            Movement = new RaonLauncherMineS2AutomatedMovement(this);

            Movement.CollisionOffset     = 10;
            Movement.MaximumStepsPerTurn = Parameter.ProjectileRaonLauncherS2MineMaximumStepsPerTurn;

            CollisionBox = new CollisionBox(this, new Rectangle(0, 0, 8, 8), new Vector2(0, 5));

            ((AutomatedMovement)Movement).OnInvalidMovemenAttempt += LoseTurn;
            ((AutomatedMovement)Movement).OnRemaningMovementEnds  += () => { Movement.RemainingStepsThisTurn = 0; };

            isMoving = false;
        }
Exemplo n.º 5
0
        //static List<Mobile> mobList;

        public DebugScene()
        {
            sceneTimespan         = 1f;
            hasRequestedNextScene = false;

            Camera.Zoom = new Vector2(1, 1);

            #region Mobile List

            /*
             * mobList = new List<Mobile>();
             * mobList.Add(ActorBuilder.BuildMobile(MobileType.Knight, sMobList[0].Owner, new Vector2(100 * 1, 100)));
             * mobList.Add(ActorBuilder.BuildMobile(MobileType.Knight, sMobList[1].Owner, new Vector2(100 * 2, 100)));
             * mobList.Add(ActorBuilder.BuildMobile(MobileType.Knight, sMobList[2].Owner, new Vector2(100 * 3, 100)));
             * mobList.Add(ActorBuilder.BuildMobile(MobileType.Knight, sMobList[3].Owner, new Vector2(100 * 4, 100)));
             * mobList.Add(ActorBuilder.BuildMobile(MobileType.Knight, sMobList[4].Owner, new Vector2(100 * 5, 100)));
             * mobList.Add(ActorBuilder.BuildMobile(MobileType.Knight, sMobList[5].Owner, new Vector2(100 * 6, 100)));
             * mobList.Add(ActorBuilder.BuildMobile(MobileType.Knight, sMobList[6].Owner, new Vector2(100 * 7, 100)));
             * mobList.Add(ActorBuilder.BuildMobile(MobileType.Knight, sMobList[7].Owner, new Vector2(100 * 8, 100)));
             *
             * for (int i = 0; i < 8; i++) ;*/

            MobileList.ForEach((x) =>
            {
                x.SyncMobile = sMobList[MobileList.IndexOf(x)];
            });
            #endregion

            MatchMetadata = new MatchMetadata();
            //MatchMetadata.CurrentTurnOwner = MobileList[0].SyncMobile;

            //optionsMenu.ShouldRender = true;

            //Popup create char
            popupSelectMobile = new PopupSelectMobile((x) => { }, () => { });
            PopupHandler.Add(popupSelectMobile);

            //MobFlipbook

            mFlipbook = new List <MobileFlipbook>();

            for (int k = 0; k < 21; k++)
            {
                mFlipbook.Add(MobileFlipbook.CreateMobileFlipbook(MobileType.RaonLauncher, new Vector2(-500 + 100 * (k % 5), -500 + 100 * (k / 5))));
            }

            int i = 0;

            mFlipbook[i++].ChangeState(ActorFlipbookState.Stand, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.StandLowHealth, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.Moving, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.MovingLowHealth, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.UnableToMove, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.Emotion1, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.Emotion2, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.BeingDamaged1, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.BeingDamaged2, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.BeingShocked, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.BeingFrozen, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.ChargingS1, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.ShootingS1, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.ChargingS2, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.ShootingS2, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.ChargingSS, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.ShootingSS, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.UsingItem, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.Dead, true);

            mFlipbook[i++].ChangeState(ActorFlipbookState.Falling, true);
            mFlipbook[i++].ChangeState(ActorFlipbookState.All, true);
        }