public class DotaAIController : MonoBehaviour

public class SvenAI : DotaAIController

// Great Cleave when surrounded if (CanCast("Great Cleave") && CountEnemiesInRange(300) >= 2) CastSpell("Great Cleave");

void RetreatToSafety()

public class LaneAssignment

if (ai.gold >= BuildOrder[ai.nextItemIndex].cost && ai.IsInBase()) ai.BuyItem(BuildOrder[ai.nextItemIndex]); ai.nextItemIndex++;

void LaneBehavior()

public List<Item> BuildOrder = new List<Item> Item.Tango, Item.Clarity, Item.Branches, Item.Boots, Item.MagicStick, Item.Treads, Item.EchoSabre, Item.Blink, Item.BKB, Item.Daedalus ; public void UpdateShopAI(HeroAI ai)

string json = JsonUtility.ToJson(currentMatch); PlayerPrefs.SetString("Match_" + System.DateTime.Now.Ticks, json);

Hero priorityTarget = GetLowestHealthEnemyHero(); if (priorityTarget != null && InRange(priorityTarget)) CastBestSpell(priorityTarget); else MoveTowards(priorityTarget.transform.position);

// God's Strength if fight starts if (CanCast("God's Strength") && currentState == AIState.TeamFight) CastSpell("God's Strength");

hero.assignedLane = lane; hero.currentState = AIState.Laning; hero.MoveTo(GetLanePosition(lane, hero.team));