diff options
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index a758e836845..edbeaf4c9ec 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -14789,24 +14789,37 @@ void Unit::SetControlled(bool apply, UnitState state) if (hasUnitState(state)) return; - addUnitState(state); - switch(state) { case UNIT_STAT_STUNNED: + { + addUnitState(state); SetStunned(true); + CastStop(); + } break; case UNIT_STAT_ROOT: if (!hasUnitState(UNIT_STAT_STUNNED)) - SetRooted(true); + { + addUnitState(state); + SetRooted(true); + } break; case UNIT_STAT_CONFUSED: if (!hasUnitState(UNIT_STAT_STUNNED)) + { + addUnitState(state); SetConfused(true); + CastStop(); + } break; case UNIT_STAT_FLEEING: if (!hasUnitState(UNIT_STAT_STUNNED | UNIT_STAT_CONFUSED)) + { + addUnitState(state); SetFeared(true); + CastStop(); + } break; default: break; |