mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-29 00:41:38 +02:00
Move mechanics factory
This commit is contained in:
@ -537,38 +537,9 @@ void CSpell::setupMechanics()
|
||||
{
|
||||
logGlobal->errorStream() << "Spell " << this->name << " mechanics already set";
|
||||
delete mechanics;
|
||||
mechanics = nullptr;
|
||||
}
|
||||
|
||||
switch (id)
|
||||
{
|
||||
case SpellID::CLONE:
|
||||
mechanics = new CloneMechanics(this);
|
||||
break;
|
||||
case SpellID::DISPEL_HELPFUL_SPELLS:
|
||||
mechanics = new DispellHelpfulMechanics(this);
|
||||
break;
|
||||
case SpellID::SACRIFICE:
|
||||
mechanics = new SacrificeMechanics(this);
|
||||
break;
|
||||
case SpellID::CHAIN_LIGHTNING:
|
||||
mechanics = new ChainLightningMechanics(this);
|
||||
break;
|
||||
case SpellID::FIRE_WALL:
|
||||
case SpellID::FORCE_FIELD:
|
||||
mechanics = new WallMechanics(this);
|
||||
break;
|
||||
case SpellID::LAND_MINE:
|
||||
case SpellID::QUICKSAND:
|
||||
mechanics = new ObstacleMechanics(this);
|
||||
default:
|
||||
if(isRisingSpell())
|
||||
mechanics = new SpecialRisingSpellMechanics(this);
|
||||
else
|
||||
mechanics = new DefaultSpellMechanics(this);
|
||||
break;
|
||||
}
|
||||
|
||||
mechanics = ISpellMechanics::createMechanics(this);
|
||||
}
|
||||
|
||||
///CSpell::TargetInfo
|
||||
|
Reference in New Issue
Block a user