public LivingObject() : base() { this.healthPoints = 20; this.maxHealthPoints = 20; this.aggroRange = 300; this.isDead = false; tasks = new List<LivingObjectTask>(); aggroSystem = new Task.Aggro.AggroSystem<LivingObject>(); MovementSpeed = 1f; currentTask = null; this.canBeEffected = true; this.interactions = new List<LivingObjectInteraction>(); this.path = null; }
private void doTasks() { if (currentTask != null) { if (currentTask.wantToDoTask()) { } else { currentTask = null; } } if (this.tasks != null) { LivingObjectTask var_TaskWantToDo = null; foreach (LivingObjectTask var_Task in this.tasks) { if (var_Task.wantToDoTask()) { if (currentTask == null) { if (var_TaskWantToDo == null) { var_TaskWantToDo = var_Task; } else if (var_TaskWantToDo.Priority < var_Task.Priority) { var_TaskWantToDo = var_Task; } } else { if (var_TaskWantToDo == null) { if (this.currentTask.Priority < var_Task.Priority) { var_TaskWantToDo = var_Task; } } else if (var_TaskWantToDo.Priority < var_Task.Priority) { var_TaskWantToDo = var_Task; } } } } if (var_TaskWantToDo != null) { this.currentTask = var_TaskWantToDo; } if (this.currentTask != null) { this.currentTask.update(); } } }