瀏覽代碼

Show popup dialog instead of server error when using TP from water

Ivan Savenko 1 年之前
父節點
當前提交
3fc4383153
共有 1 個文件被更改,包括 12 次插入0 次删除
  1. 12 0
      lib/spells/AdventureSpellMechanics.cpp

+ 12 - 0
lib/spells/AdventureSpellMechanics.cpp

@@ -535,6 +535,18 @@ ESpellCastResult TownPortalMechanics::applyAdventureEffects(SpellCastEnvironment
 		return ESpellCastResult::ERROR;
 	}
 
+	const TerrainTile & from = env->getMap()->getTile(parameters.caster->getHeroCaster()->visitablePos());
+	const TerrainTile & dest = env->getMap()->getTile(destination->visitablePos());
+
+	if(!dest.isClear(&from))
+	{
+		InfoWindow iw;
+		iw.player = parameters.caster->getCasterOwner();
+		iw.text.appendLocalString(EMetaText::GENERAL_TXT, 135);
+		env->apply(&iw);
+		return ESpellCastResult::ERROR;
+	}
+
 	return ESpellCastResult::OK;
 }