public bool MoveBetweenCircle(Subject attacker, Subject defender, ECircles to) { int instanceDefender = defender.gameObject.GetInstanceID(); var circle = circles[instanceDefender]; return(circle.Move(attacker, to)); }
public bool Register(Subject enemy, ECircles type) { if (IsContains(enemy)) { return(Move(enemy, type)); } var circle = circles[type]; bool isRegistered = circle.Register(enemy); if (isRegistered) { enemies.Add(enemy.gameObject.GetInstanceID() , new KungFuData(enemy, type)); } return(isRegistered); }
public bool Move(Subject enemy, ECircles to) { int instance = enemy.gameObject.GetInstanceID(); var data = enemies[instance]; if (to.Equals(data.type)) { return(true); } var fromCircle = circles[data.type]; var toCircle = circles[to]; fromCircle.Unregister(enemy); bool isSwapped = toCircle.Register(enemy); if (isSwapped) { data.type = to; } return(isSwapped); }
public bool RegisterToCircle(Subject attacker, Subject defender, ECircles type) { int instanceDefender = defender.gameObject.GetInstanceID(); return(circles[instanceDefender].Register(attacker, type)); }
public KungFuData(Subject subject, ECircles type) { this.subject = subject; this.type = type; //this.actionManager = subject.GetActionsManager (); }