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(); }
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 }
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; }
//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); }