diff --git a/logic/Gaming/AttackManager.cs b/logic/Gaming/AttackManager.cs index 0db4748..9b9fc1e 100644 --- a/logic/Gaming/AttackManager.cs +++ b/logic/Gaming/AttackManager.cs @@ -48,7 +48,7 @@ namespace Gaming { case GameObjType.Character: - if ((!(((Character)objBeingShot).IsGhost())) && bullet.Parent.IsGhost()) + if ((!(((Character)objBeingShot).IsGhost())) && bullet.Parent!.IsGhost()) { characterManager.BeAttacked((Student)objBeingShot, bullet); } @@ -57,7 +57,7 @@ namespace Gaming break; case GameObjType.Generator: if (bullet.CanBeBombed(GameObjType.Generator)) - ((Generator)objBeingShot).Repair(-bullet.AP * GameData.factorDamageGenerator, (Character)bullet.Parent); + ((Generator)objBeingShot).Repair(-bullet.AP * GameData.factorDamageGenerator, (Character)bullet.Parent!); break; default: break; @@ -101,12 +101,12 @@ namespace Gaming { if (objBeingShot == null) { - characterManager.BackSwing((Character)bullet.Parent, bullet.Backswing); + characterManager.BackSwing((Character)bullet.Parent!, bullet.Backswing); return; } BombObj(bullet, objBeingShot); - characterManager.BackSwing((Character)bullet.Parent, bullet.RecoveryFromHit); + characterManager.BackSwing((Character)bullet.Parent!, bullet.RecoveryFromHit); return; } @@ -122,7 +122,7 @@ namespace Gaming if (bullet.TypeOfBullet == BulletType.BombBomb && objBeingShot != null) { - bullet.Parent.BulletOfPlayer = BulletType.JumpyDumpty; + bullet.Parent!.BulletOfPlayer = BulletType.JumpyDumpty; Debugger.Output(bullet.Parent, bullet.Parent.CharacterType.ToString() + " " + bullet.Parent.BulletNum.ToString()); Attack((Character)bullet.Parent, bullet.FacingDirection.Angle() + Math.PI / 2.0); Attack((Character)bullet.Parent, bullet.FacingDirection.Angle() + Math.PI * 3.0 / 2.0); @@ -159,10 +159,10 @@ namespace Gaming if (objBeingShot == null) { - characterManager.BackSwing((Character)bullet.Parent, bullet.Backswing); + characterManager.BackSwing((Character)bullet.Parent!, bullet.Backswing); } else - characterManager.BackSwing((Character)bullet.Parent, bullet.RecoveryFromHit); + characterManager.BackSwing((Character)bullet.Parent!, bullet.RecoveryFromHit); } public bool Attack(Character player, double angle) diff --git a/logic/Gaming/CharacterManager .cs b/logic/Gaming/CharacterManager .cs index c7aefaf..2a12664 100644 --- a/logic/Gaming/CharacterManager .cs +++ b/logic/Gaming/CharacterManager .cs @@ -25,11 +25,11 @@ namespace Gaming switch (player.PlayerState) { case PlayerStateType.OpeningTheChest: - ((Chest)player.WhatInteractingWith).StopOpen(); + ((Chest)player.WhatInteractingWith!).StopOpen(); player.ChangePlayerState(value, gameObj); break; case PlayerStateType.OpeningTheDoorway: - Doorway doorway = (Doorway)player.WhatInteractingWith; + Doorway doorway = (Doorway)player.WhatInteractingWith!; doorway.OpenDegree += gameMap.Timer.nowTime() - doorway.OpenStartTime; doorway.OpenStartTime = 0; player.ChangePlayerState(value, gameObj); @@ -302,7 +302,7 @@ namespace Gaming if (character.CanBeAwed()) { if (BeStunned(character, GameData.basicStunnedTimeOfStudent)) - bullet.Parent.AddScore(GameData.TrickerScoreStudentBeStunned(GameData.basicStunnedTimeOfStudent)); + bullet.Parent!.AddScore(GameData.TrickerScoreStudentBeStunned(GameData.basicStunnedTimeOfStudent)); return true; } return false; @@ -321,7 +321,7 @@ namespace Gaming Debugger.Output(student, "is being shot!"); #endif if (student.NoHp()) return; // 原来已经死了 - if (!bullet.Parent.IsGhost()) return; + if (!bullet.Parent!.IsGhost()) return; if (student.CharacterType == CharacterType.StraightAStudent) { @@ -413,9 +413,10 @@ namespace Gaming } if (player.CharacterType == CharacterType.Robot) { - if (((Golem)player).Parent != null && ((Golem)player).Parent.CharacterType == CharacterType.TechOtaku) + var parent = ((Golem)player).Parent; + if (parent != null && parent.CharacterType == CharacterType.TechOtaku) { - ((SummonGolem)(((Golem)player).Parent.FindIActiveSkill(ActiveSkillType.SummonGolem))).GolemSummoned = null; + ((SummonGolem)(parent.FindIActiveSkill(ActiveSkillType.SummonGolem))).GolemSummoned = null; player.FindIActiveSkill(ActiveSkillType.UseRobot).IsBeingUsed = false; } return;