Ejemplo n.º 1
0
 void FixedUpdate()
 {
     if (_isPaused)
     {
         _currentStickSoundRemainingTime -= Time.fixedDeltaTime;
         if (_currentStickSoundRemainingTime <= 0)
         {
             _currentStickSoundRemainingTime = StickSoundDelay;
             _player.PlayAudioById("tramdoorstuck");
         }
         if (_currentStickPassenger == null)
         {
             _currentStickPassenger = GameController.GetInstance().GetStickPassenger();
             if (_currentStickPassenger != null)
             {
                 _currentStickDoor = MonobehaviorHandler.GetMonobeharior().GetObject <Floor>("Floor").GetPassengerDoor(_currentStickPassenger)
                                     .GetComponent <DoorsAnimationController>();
             }
         }
         if (_currentStickDoor != null)
         {
             _currentStickDoor.Glitch();
         }
         return;
     }
     if (_isDoorsOpen)
     {
         _currentStopDuration += Time.fixedDeltaTime;
         if (_currentStopDuration > _stopDuration)
         {
             _isDoorsOpen         = false;
             _currentStopDuration = 0;
             UpdateDoors();
         }
     }
     else
     {
         if (!_isMovementTimeLocked)
         {
             _currentMoveDuration += Time.fixedDeltaTime;
         }
         if (_currentMoveDuration > _currentStationTotalMoveDuration)
         {
             _isDoorsOpen         = true;
             _currentMoveDuration = 0;
             GameController.GetInstance().CheckBeforeDoorsOpen();
             UpdateDoors();
             GameController.GetInstance().IncrementStationNumberForPassengers();
             if (_countToFinish > 0)
             {
                 _countToFinish--;
                 if (_countToFinish == 0)
                 {
                     MonobehaviorHandler.GetMonobeharior()
                     .GetObject <TrainingHandler>("TrainingHandler").ShowNext();
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
    private void DoRegularSpawn(GameObject spawnPoint)
    {
        int maxCount   = GameController.GetInstance().GetCurrentSpawnCount();
        int doorsCount = _doorsTimer.GetOpenedDoorsCount();
        int realCount  = Randomizer.GetInRange(1, maxCount / doorsCount);

        for (int i = 0; i < realCount; i++)
        {
            if (GameController.GetInstance().GetPassengersCount() > _maxPassengers || _currentSessionSpawnCount >= maxCount)
            {
                return;
            }
            string      passengerString = MapManager.GetInstance().GetRandomCharacter();
            PassengerSM ps = InstantiateNPC(passengerString, spawnPoint.transform.position, true);
            _currentSessionSpawnCount++;
            if (ps == null)
            {
                return;
            }
            _bonusTimer.AddBonusEffectToSpawnedPassenger(ps);
            if (ps.IsStick())
            {
                _doorsTimer.SetPaused(true);
                return;
            }
            ps.MoveToRandomPosition();
        }
    }
Ejemplo n.º 3
0
 private bool IsEffectRemovingPossible(PassengerSM passenger)
 {
     if (!IsBonusExist(passenger))
         return false;
     passenger.ActiveBonuses.Remove(GetBonusType());
     return true;
 }
Ejemplo n.º 4
0
 private bool IsEffectAdditionPossible(PassengerSM passenger)
 {
     if (IsBonusExist(passenger))
         return false;
     passenger.ActiveBonuses.Add(GetBonusType());
     return true;
 }
Ejemplo n.º 5
0
    void OnTriggerStay2D(Collider2D other)
    {
        if (!_isCheckPossible && _checkStateEnabled)
        {
            return;
        }
        _isCheckPossible         = false;
        _timeAfterPassengerCheck = 0;
        PassengerCollisionDetector passengerCD = other.GetComponent <PassengerCollisionDetector>();

        if (passengerCD != null)
        {
            PassengerSM passenger = (PassengerSM)passengerCD.Character;
            TryHaveSetPassenger(passenger);
            return;
        }
        ConductorCollisionDetector conductorCD = other.GetComponentInParent <ConductorCollisionDetector>();

        if (conductorCD != null)
        {
            ConductorSM conductor = (ConductorSM)conductorCD.Character;
            if (conductor.IsDragging())
            {
                PassengerSM draggedPassenger = conductor.GetDragTarget();
                TryHaveSetPassenger(draggedPassenger);
            }
        }
    }
Ejemplo n.º 6
0
    public bool FindRunAwayTarget(PassengerSM ps)
    {
        _passengers.RemoveAll(item => item == null);
        foreach (var passenger in _passengers)
        {
            if (passenger != ps)
            {
                float dist = ((Vector2)passenger.transform.position - (Vector2)ps.transform.position).sqrMagnitude;
                if (dist < ps.AttackMaxDistance)
                {
                    if (ps.TryRunAwayFromMovable(passenger))
                    {
                        return(true);
                    }
                }
            }
        }
        ConductorSM hero          = MonobehaviorHandler.GetMonobeharior().GetObject <Floor>("Floor").GetHero();
        float       conductorDist = ((Vector2)hero.transform.position - (Vector2)ps.transform.position).sqrMagnitude;

        if (conductorDist < ps.AttackMaxDistance)
        {
            if (ps.TryRunAwayFromMovable(hero))
            {
                return(true);
            }
        }
        return(false);
    }
Ejemplo n.º 7
0
 private void TryHaveSetPassenger(PassengerSM passenger)
 {
     if (passenger.IsGoingAway)
     {
         passenger.SetTarget(new Vector2());
         return;
     }
     if (passenger.GetActiveState() != (int) MovableCharacterSM.MovableCharacterStates.Dragged && passenger.IsSitListenerActivated())
     {
         passenger.CalculateRandomTarget();
         return;
     }
     passenger.IsNearBench = true;
     if (passenger.IsOnTheBench())
     {
         return;
     }
     if (Randomizer.GetPercentageBasedBoolean(GetSitPossibility()) || passenger.IsSitListenerActivated())
     {
         if (passenger.GetActiveState() == (int) MovableCharacterSM.MovableCharacterStates.Dragged &&
             passenger.HasTicket())
         {
             passenger.StopDrag(false);
             passenger.ActivateSitListener();
         }
         passenger.HandleSitdown(this);
     }
 }
Ejemplo n.º 8
0
 private void TryHaveSetPassenger(PassengerSM passenger)
 {
     if (passenger.IsGoingAway)
     {
         passenger.SetTarget(new Vector2());
         return;
     }
     if (passenger.GetActiveState() != (int)MovableCharacterSM.MovableCharacterStates.Dragged && passenger.IsSitListenerActivated())
     {
         passenger.CalculateRandomTarget();
         return;
     }
     passenger.IsNearBench = true;
     if (passenger.IsOnTheBench())
     {
         return;
     }
     if (Randomizer.GetPercentageBasedBoolean(GetSitPossibility()) || passenger.IsSitListenerActivated())
     {
         if (passenger.GetActiveState() == (int)MovableCharacterSM.MovableCharacterStates.Dragged &&
             passenger.HasTicket())
         {
             passenger.StopDrag(false);
             passenger.ActivateSitListener();
         }
         passenger.HandleSitdown(this);
     }
 }
Ejemplo n.º 9
0
 public override void RemoveEffect(PassengerSM passenger)
 {
     if (IsEffectRemovingPossible(passenger))
     {
         RemoveEffectAfterCheck(passenger);
     }
 }
Ejemplo n.º 10
0
 public override void AddEffect(PassengerSM passenger)
 {
     if (IsEffectAdditionPossible(passenger))
     {
         AddEffectAfterCheck(passenger);
     }
 }
Ejemplo n.º 11
0
 public void AddBonusEffectToSpawnedPassenger(PassengerSM passenger)
 {
     foreach (var activeBonus in _activeBonuses)
     {
         activeBonus.AddEffect(passenger);
     }
 }
Ejemplo n.º 12
0
 public void StopStickIfNeeded()
 {
     if (_stickTarget != null)
     {
         _stickTarget.StopStick();
         _stickTarget = null;
     }
 }
Ejemplo n.º 13
0
 public bool CanKick(PassengerSM obj)
 {
     if (IsInWayoutZone && IsInAttackRadius(obj.transform.position) && !obj.IsStick())
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 14
0
 public void StopStickIfNeeded()
 {
     if (_stickTarget != null)
     {
         _stickTarget.StopStick();
         _stickTarget = null;
     }
 }
Ejemplo n.º 15
0
 protected override void RemoveEffectAfterCheck(PassengerSM passenger)
 {
     passenger.UnFreeze();
     if (!_isSnowDeactivated)
     {
         _isSnowDeactivated = true;
         _floor.SnowDrop(_data, false);
     }
 }
Ejemplo n.º 16
0
 private bool IsEffectRemovingPossible(PassengerSM passenger)
 {
     if (!IsBonusExist(passenger))
     {
         return(false);
     }
     passenger.ActiveBonuses.Remove(GetBonusType());
     return(true);
 }
Ejemplo n.º 17
0
 protected override void RemoveEffectAfterCheck(PassengerSM passenger)
 {
     passenger.UnFreeze();
     if (!_isSnowDeactivated)
     {
         _isSnowDeactivated = true;
         _floor.SnowDrop(_data, false);
     }
 }
Ejemplo n.º 18
0
 private bool IsEffectAdditionPossible(PassengerSM passenger)
 {
     if (IsBonusExist(passenger))
     {
         return(false);
     }
     passenger.ActiveBonuses.Add(GetBonusType());
     return(true);
 }
Ejemplo n.º 19
0
    void OnTriggerExit2D(Collider2D other)
    {
        PassengerSM passenger = other.GetComponentInParent <PassengerSM>();

        if (passenger != null)
        {
            passenger.IsNearBench = false;
        }
    }
Ejemplo n.º 20
0
 public GameObject GetPassengerDoor(PassengerSM passenger)
 {
     Vector2 position = passenger.transform.position;
     foreach (var door in _doors)
     {
         if (IsPointCloseToCollider(position, door))
             return door.gameObject;
     }
     return null;
 }
Ejemplo n.º 21
0
    public bool IsPassengerNearCentralWayout(PassengerSM ps)
    {
        Vector2 position = ps.transform.position;

        if (IsPointCloseToCollider(position, _centralWayout))
        {
            return(true);
        }
        return(false);
    }
Ejemplo n.º 22
0
 public void RegisterPassenger(PassengerSM ps)
 {
     if (ps.HasTicket())
     {
         _totalPassengers++;
     }
     _totalHares++;
     _passengers.Add(ps);
     UpdateStats();
 }
Ejemplo n.º 23
0
 public void StopDrag(bool attack)
 {
     if (GetActiveState().Equals((int)MovableCharacterStates.Drag))
     {
         MakeIdle();
         if (_dragTarget != null)
         {
             _dragTarget.StopDrag(attack);
         }
         _dragTarget = null;
     }
 }
Ejemplo n.º 24
0
 public void UpdatePassenger(PassengerSM ps)
 {
     if (ps.HasTicket())
     {
         if (_totalHares > 0)
         {
             _totalHares--;
         }
         _ticketCount++;
     }
     UpdateStats();
 }
Ejemplo n.º 25
0
    public GameObject GetPassengerDoor(PassengerSM passenger)
    {
        Vector2 position = passenger.transform.position;

        foreach (var door in _doors)
        {
            if (IsPointCloseToCollider(position, door))
            {
                return(door.gameObject);
            }
        }
        return(null);
    }
Ejemplo n.º 26
0
    public bool IsPassengerNearDoors(PassengerSM ps)
    {
        Vector2 position = ps.transform.position;

        foreach (var door in _doors)
        {
            if (IsPointCloseToCollider(position, door))
            {
                return(true);
            }
        }
        return(false);
    }
Ejemplo n.º 27
0
 protected override void AddEffectAfterCheck(PassengerSM passenger)
 {
     MonobehaviorHandler.GetMonobeharior().GetObject <DoorsTimer>("DoorsTimer").SetPaused(false);
     passenger.ActiveBonuses.Add(GetBonusType());
     if (_data == null)
     {
         _data            = new FreezeData();
         _data.Distance   = Dist;
         _data.StartPoint = Position;
         _floor           = MonobehaviorHandler.GetMonobeharior().GetObject <Floor>("Floor");
         _floor.SnowDrop(_data, true);
     }
     passenger.ActivateFreezeBonus(_data);
 }
Ejemplo n.º 28
0
 protected override void AddEffectAfterCheck(PassengerSM passenger)
 {
     MonobehaviorHandler.GetMonobeharior().GetObject<DoorsTimer>("DoorsTimer").SetPaused(false);
     passenger.ActiveBonuses.Add(GetBonusType());
     if (_data == null)
     {
         _data = new FreezeData();
         _data.Distance = Dist;
         _data.StartPoint = Position;
         _floor = MonobehaviorHandler.GetMonobeharior().GetObject<Floor>("Floor");
         _floor.SnowDrop(_data, true);
     }
     passenger.ActivateFreezeBonus(_data);
 }
Ejemplo n.º 29
0
 public void ReplacePassenger(PassengerSM newPassenger, PassengerSM oldPassenger)
 {
     if (_passengersToAdd == null)
     {
         _passengersToAdd = new List <PassengerSM>();
     }
     if (_passengersToDelete == null)
     {
         _passengersToDelete = new List <PassengerSM>();
     }
     _passengersToAdd.Add(newPassenger);
     _passengersToDelete.Add(oldPassenger);
     _isPassengersListChanged = true;
 }
Ejemplo n.º 30
0
 public static void ReplacePassenger(PassengerSM passenger)
 {
     Vector3 passengerPosition = passenger.transform.position;
     bool hasTicket = passenger.HasTicket();
     bool isVisibleToHero = passenger.IsVisibleToHero();
     string passengerType = passenger.GetClassName();
     passenger.enabled = false;
     if (_spawner == null)
     {
         _spawner = MonobehaviorHandler.GetMonobeharior().GetObject<Spawner>("Spawner");
     }
     PassengerSM newPassenger = _spawner.SpawnAlternativePassenger(passengerPosition, passengerType);
     newPassenger.SetTicketAndVisibility(hasTicket, isVisibleToHero);
     GameController.GetInstance().ReplacePassenger(newPassenger, passenger);
 }
Ejemplo n.º 31
0
 public void Unstick()
 {
     if (_currentStickDoor != null)
     {
         if (_isDoorsOpen)
         {
             _currentStickDoor.Open(false);
         }
         else
         {
             _currentStickDoor.Close();
         }
         _currentStickPassenger = null;
     }
     _isPaused = false;
 }
Ejemplo n.º 32
0
 public bool IsNearOtherPassenger(PassengerSM ps)
 {
     _passengers.RemoveAll(item => item == null);
     foreach (var passenger in _passengers)
     {
         if (passenger != ps)
         {
             float dist = ((Vector2)passenger.transform.position - (Vector2)ps.transform.position).sqrMagnitude;
             if (dist < _minDistance)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Ejemplo n.º 33
0
    private PassengerSM InstantiateNPC(string className, Vector3 position, bool register, bool unstickable = false)
    {
        int randomIndex = PassengerIndex(className);

        if (randomIndex < 0)
        {
            return(null);
        }
        GameObject randomNPC    = unitPrefabs[randomIndex];
        GameObject instantiated =
            (GameObject)Instantiate(randomNPC, position, Quaternion.identity);
        PassengerSM ps = instantiated.GetComponent <PassengerSM>();

        ps.Init(register, unstickable);
        return(ps);
    }
Ejemplo n.º 34
0
    public static void ReplacePassenger(PassengerSM passenger)
    {
        Vector3 passengerPosition = passenger.transform.position;
        bool    hasTicket         = passenger.HasTicket();
        bool    isVisibleToHero   = passenger.IsVisibleToHero();
        string  passengerType     = passenger.GetClassName();

        passenger.enabled = false;
        if (_spawner == null)
        {
            _spawner = MonobehaviorHandler.GetMonobeharior().GetObject <Spawner>("Spawner");
        }
        PassengerSM newPassenger = _spawner.SpawnAlternativePassenger(passengerPosition, passengerType);

        newPassenger.SetTicketAndVisibility(hasTicket, isVisibleToHero);
        GameController.GetInstance().ReplacePassenger(newPassenger, passenger);
    }
Ejemplo n.º 35
0
 public void Kick(PassengerSM obj)
 {
     if (obj.IsFrozen())
     {
         obj.TemporalyUnfreeze();
     }
     MonobehaviorHandler.GetMonobeharior().GetObject <AudioPlayer>("AudioPlayer").PlayAudioById("kick");
     CalculateOrientation(obj.transform.position);
     ActivateState((int)MovableCharacterStates.Attack);
     if (obj.IsStick())
     {
         obj.StopStick();
         obj.WasStickWhenFlyAway = true;
     }
     obj.FlyAway();
     AttackTarget = null;
     _dragTarget  = null;
 }
Ejemplo n.º 36
0
 public void StartDrag(PassengerSM obj)
 {
     if (Time.timeScale == 0)
     {
         return;
     }
     if (_dragTarget != null)
         _dragTarget.StopDrag(false);
     if (obj.IsStick())
     {
         obj.StopStick();
     }
     if(obj.IsDragDenied())
         return;
     _dragTarget = obj;
     _dragStartPoint = MonobehaviorHandler.GetMonobeharior().GetObject<Floor>("Floor").GetCurrentMousePosition();
     CalculateOrientation(_dragStartPoint);
     ActivateState((int)MovableCharacterStates.Drag);
     obj.StartDrag();
 }
Ejemplo n.º 37
0
 public void Spawn(GameObject spawnPoint, string passengerName = "", TicketAdditionMode ticketMode = TicketAdditionMode.Default)
 {
     if (GameController.GetInstance().IsGameFinished)
     {
         return;
     }
     if (passengerName == "")
     {
         DoRegularSpawn(spawnPoint);
     }
     else
     {
         PassengerSM ps = InstantiateNPC(passengerName, spawnPoint.transform.position, true, true);
         ps.MoveToRandomPosition();
         if (ticketMode != TicketAdditionMode.Default)
         {
             ps.SetTicketAndVisibility(ticketMode == TicketAdditionMode.WithTicket, false);
         }
     }
 }
Ejemplo n.º 38
0
    public bool TryAttackMovable(MovableCharacterSM movable)
    {
        if (_attackDenyedByTraining)
        {
            return(false);
        }
        float currentAttackProbability = GetAttackProbabilityForClass(movable.GetClassName());
        var   sm = movable as PassengerSM;

        if (sm != null)
        {
            if (_isPassengerAttackDenied)
            {
                return(false);
            }
            PassengerSM passenger = sm;
            if (passenger.IsOnTheBench())
            {
                currentAttackProbability *=
                    ConfigReader.GetConfig().GetField("tram").GetField("SitAggressionIncrement").n;
            }
        }
        if (Randomizer.GetPercentageBasedBoolean((int)currentAttackProbability))
        {
            if (_isConductorAttackDenied)
            {
                ConductorSM conductor = movable as ConductorSM;
                if (conductor != null)
                {
                    return(false);
                }
            }
            AttackTarget = movable;
            AttackIfPossible();
            return(true);
        }
        MakeIdle();
        return(false);
    }
Ejemplo n.º 39
0
    private void OnMouseDown(bool doubleClick)
    {
        if (Time.timeScale == 0)
        {
            return;
        }
        if (_hero == null)
        {
            return;
        }
        Vector2 pos = GetCurrentMousePosition();
        List <MovableCharacterSM> affectedCharacters = new List <MovableCharacterSM>();

        if (MonobehaviorHandler.GetMonobeharior()
            .GetObject <BonusTimer>("bonusTimer").IsAnyBonusActive())
        {
            affectedCharacters = MonobehaviorHandler.GetMonobeharior()
                                 .GetObject <BonusTimer>("bonusTimer").HandleClick(pos, doubleClick);
        }
        PassengerSM passengerNearClick = GameController.GetInstance().GetPassengerNearClick(pos);

        if (passengerNearClick != null && !affectedCharacters.Contains(passengerNearClick))
        {
            if (doubleClick)
            {
                passengerNearClick.HandleDoubleClick();
            }
            else
            {
                passengerNearClick.HandleClick();
            }
            return;
        }
        if (!doubleClick)
        {
            _hero.SetTarget(pos);
        }
    }
Ejemplo n.º 40
0
    void FixedUpdate () 
    {
        if (_isPaused)
        {
            _currentStickSoundRemainingTime -= Time.fixedDeltaTime;
            if (_currentStickSoundRemainingTime <= 0)
            {
                _currentStickSoundRemainingTime = StickSoundDelay;
                _player.PlayAudioById("tramdoorstuck");
            }
            if (_currentStickPassenger == null)
            {
                _currentStickPassenger = GameController.GetInstance().GetStickPassenger();
                if (_currentStickPassenger != null)
                {
                    _currentStickDoor = MonobehaviorHandler.GetMonobeharior().GetObject<Floor>("Floor").GetPassengerDoor(_currentStickPassenger)
                        .GetComponent<DoorsAnimationController>();
                }
            }
            if(_currentStickDoor != null)
                _currentStickDoor.Glitch();
            return;
        }
	    if (_isDoorsOpen)
	    {
	        _currentStopDuration += Time.fixedDeltaTime;
	        if (_currentStopDuration > _stopDuration)
	        {
	            _isDoorsOpen = false;
	            _currentStopDuration = 0;
                UpdateDoors();
	        }
	    }
	    else
	    {
            if(!_isMovementTimeLocked)
                _currentMoveDuration += Time.fixedDeltaTime;
            if (_currentMoveDuration > _currentStationTotalMoveDuration)
            {
                _isDoorsOpen = true;
                _currentMoveDuration = 0;
                GameController.GetInstance().CheckBeforeDoorsOpen();
                UpdateDoors();
                GameController.GetInstance().IncrementStationNumberForPassengers();
                if (_countToFinish > 0)
                {
                    _countToFinish--;
                    if (_countToFinish == 0)
                    {
                        MonobehaviorHandler.GetMonobeharior()
                        .GetObject<TrainingHandler>("TrainingHandler").ShowNext();
                    }
                }
            }
        }

	}
Ejemplo n.º 41
0
 protected override void RemoveEffectAfterCheck(PassengerSM passenger)
 {
     passenger.DragChangeStatePeriod *= DecrementCoef;
 }
Ejemplo n.º 42
0
 public PassengerAttackedState(StateMachine parent) : base(parent)
 {
     _passenger = (PassengerSM) parent;
 }
Ejemplo n.º 43
0
 public void Unstick()
 {
     if (_currentStickDoor != null)
     {
         if (_isDoorsOpen)
             _currentStickDoor.Open(false);
         else
             _currentStickDoor.Close();
         _currentStickPassenger = null;
     }
     _isPaused = false;
 }
Ejemplo n.º 44
0
 public void RegisterPassenger(PassengerSM ps)
 {
     if (ps.HasTicket())
     {
         _totalPassengers++;
     }
     _totalHares++;
     _passengers.Add(ps);
     UpdateStats();
 }
Ejemplo n.º 45
0
 public void UpdatePassenger(PassengerSM ps)
 {
     if (ps.HasTicket())
     {
         if(_totalHares > 0)
             _totalHares--;
         _ticketCount++;
     }
     UpdateStats();
 }
Ejemplo n.º 46
0
 public void Kick(PassengerSM obj)
 {
     if (obj.IsFrozen())
     {
         obj.TemporalyUnfreeze();
     }
     MonobehaviorHandler.GetMonobeharior().GetObject<AudioPlayer>("AudioPlayer").PlayAudioById("kick");
     CalculateOrientation(obj.transform.position);
     ActivateState((int)MovableCharacterStates.Attack);
     if (obj.IsStick())
     {
         obj.StopStick();
         obj.WasStickWhenFlyAway = true;
     }
     obj.FlyAway();
     AttackTarget = null;
     _dragTarget = null;
 }
Ejemplo n.º 47
0
 protected override void RemoveEffectAfterCheck(PassengerSM passenger)
 {
 }
Ejemplo n.º 48
0
 public PassengerFlyingAwayState(StateMachine parent) : base(parent)
 {
     _passenger = (PassengerSM) parent;
 }
Ejemplo n.º 49
0
 public bool CanKick(PassengerSM obj)
 {
     if (IsInWayoutZone && IsInAttackRadius(obj.transform.position) && !obj.IsStick())
         return true;
     return false;
 }
Ejemplo n.º 50
0
 public bool IsPassengerNearCentralWayout(PassengerSM ps)
 {
     Vector2 position = ps.transform.position;
     if (IsPointCloseToCollider(position, _centralWayout))
         return true;
     return false;
 }
Ejemplo n.º 51
0
 public void StartSaveStickPassenger(PassengerSM passenger)
 {
     _stickTarget = passenger;
 }
Ejemplo n.º 52
0
 public void StopDrag(bool attack)
 {
     if (GetActiveState().Equals((int)MovableCharacterStates.Drag))
     {
         MakeIdle();
         if (_dragTarget != null)
         {
             _dragTarget.StopDrag(attack);
         }
         _dragTarget = null;
     }
 }
Ejemplo n.º 53
0
 public bool FindRunAwayTarget(PassengerSM ps)
 {
     _passengers.RemoveAll(item => item == null);
     foreach (var passenger in _passengers)
     {
         if (passenger != ps)
         {
             float dist = ((Vector2)passenger.transform.position - (Vector2)ps.transform.position).sqrMagnitude;
             if (dist < ps.AttackMaxDistance)
             {
                 if (ps.TryRunAwayFromMovable(passenger))
                     return true;
             }
         }
     }
     ConductorSM hero = MonobehaviorHandler.GetMonobeharior().GetObject<Floor>("Floor").GetHero();
     float conductorDist = ((Vector2)hero.transform.position - (Vector2)ps.transform.position).sqrMagnitude;
     if (conductorDist < ps.AttackMaxDistance)
     {
         if (ps.TryRunAwayFromMovable(hero))
             return true;
     }
     return false;
 }
Ejemplo n.º 54
0
 protected override void AddEffectAfterCheck(PassengerSM passenger)
 {
     passenger.Velocity *= DecrementCoef;
 }
Ejemplo n.º 55
0
 public bool IsNearOtherPassenger(PassengerSM ps)
 {
     _passengers.RemoveAll(item => item == null);
     foreach (var passenger in _passengers)
     {
         if (passenger != ps)
         {
             float dist = ((Vector2)passenger.transform.position - (Vector2)ps.transform.position).sqrMagnitude;
             if (dist < _minDistance)
                 return true;
         }
     }
     return false;
 }
Ejemplo n.º 56
0
 protected override void RemoveEffectAfterCheck(PassengerSM passenger)
 {
     passenger.Velocity *= IncrementCoef;
 }
Ejemplo n.º 57
0
 public void ReplacePassenger(PassengerSM newPassenger, PassengerSM oldPassenger)
 {
     if(_passengersToAdd == null)
         _passengersToAdd = new List<PassengerSM>();
     if(_passengersToDelete == null)
         _passengersToDelete = new List<PassengerSM>();
     _passengersToAdd.Add(newPassenger);
     _passengersToDelete.Add(oldPassenger);
     _isPassengersListChanged = true;
 }
Ejemplo n.º 58
0
 protected override void AddEffectToPassenger(PassengerSM passenger)
 {
     passenger.AddDamageValue(-passenger.GetInitialLifes());
 }
Ejemplo n.º 59
0
 public PassengerEscapeState(StateMachine parent)
     : base(parent)
 {
     _passenger = (PassengerSM) parent;
 }
Ejemplo n.º 60
0
 public bool IsPassengerNearDoors(PassengerSM ps)
 {
     Vector2 position = ps.transform.position;
     foreach (var door in _doors)
     {
         if (IsPointCloseToCollider(position, door))
             return true;
     }
     return false;
 }