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 override void InitializeAgent() { base.InitializeAgent(); m_Shooting = GetComponent <Shooting>(); //m_Movement = GetComponent<Movement>(); m_Movement = GetComponent <LocalMovement>(); Monitor.verticalOffset = 1f; myArea = area.GetComponent <TankArea>(); rayPer = GetComponent <RayPerception>(); myAcademy = myAcademyObj.GetComponent <TankAcademy>(); agentRB = GetComponent <Rigidbody>(); }