mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-05-20 08:26:59 -04:00
added some more ai stubs
- created mob class - added pathfind and targetfind helper classes (todo: actually add stuff to them) - added action queue helper class (todo: add shit to it)
This commit is contained in:
@@ -3,10 +3,67 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FFXIVClassic_Map_Server.Actors;
|
||||
|
||||
namespace FFXIVClassic_Map_Server.actors.chara.ai.controllers
|
||||
{
|
||||
class Controller
|
||||
abstract class Controller
|
||||
{
|
||||
protected Character owner;
|
||||
|
||||
protected DateTime lastUpdate;
|
||||
protected bool canUpdate = true;
|
||||
protected bool autoAttackEnabled = true;
|
||||
protected bool castingEnabled = true;
|
||||
protected bool weaponSkillEnabled = true;
|
||||
protected PathFind pathFind;
|
||||
protected TargetFind targetFind;
|
||||
|
||||
public abstract void Update(DateTime tick);
|
||||
public abstract bool Engage(Character target);
|
||||
public abstract bool Disengage();
|
||||
public abstract void Cast(Character target, uint spellId);
|
||||
public virtual void WeaponSkill(Character target, uint weaponSkillId) { }
|
||||
public virtual void MobSkill(Character target, uint mobSkillId) { }
|
||||
public abstract void Ability(Character target, uint abilityId);
|
||||
public abstract void RangedAttack(Character target);
|
||||
public virtual void Spawn() { }
|
||||
public virtual void Despawn() { }
|
||||
|
||||
|
||||
public virtual void ChangeTarget(Character target)
|
||||
{
|
||||
owner.aiContainer.InternalEngage(target);
|
||||
}
|
||||
|
||||
public bool IsAutoAttackEnabled()
|
||||
{
|
||||
return autoAttackEnabled;
|
||||
}
|
||||
|
||||
public void SetAutoAttackEnabled(bool isEnabled)
|
||||
{
|
||||
autoAttackEnabled = isEnabled;
|
||||
}
|
||||
|
||||
public bool IsCastingEnabled()
|
||||
{
|
||||
return castingEnabled;
|
||||
}
|
||||
|
||||
public void SetCastingEnabled(bool isEnabled)
|
||||
{
|
||||
castingEnabled = isEnabled;
|
||||
}
|
||||
|
||||
public bool IsWeaponSkillEnabled()
|
||||
{
|
||||
return weaponSkillEnabled;
|
||||
}
|
||||
|
||||
public void SetWeaponSkillEnabled(bool isEnabled)
|
||||
{
|
||||
weaponSkillEnabled = isEnabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -3,10 +3,59 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FFXIVClassic_Map_Server.Actors;
|
||||
|
||||
namespace FFXIVClassic_Map_Server.actors.chara.ai.controllers
|
||||
{
|
||||
class MobController : Controller
|
||||
{
|
||||
public MobController(Character owner)
|
||||
{
|
||||
this.owner = owner;
|
||||
this.lastUpdate = DateTime.Now;
|
||||
}
|
||||
|
||||
public override void Update(DateTime tick)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override bool Engage(Character target)
|
||||
{
|
||||
// todo: check distance, last swing time, status effects
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool TryEngage(Character target)
|
||||
{
|
||||
// todo:
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool Disengage()
|
||||
{
|
||||
// todo:
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void Cast(Character target, uint spellId)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void Ability(Character target, uint abilityId)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void RangedAttack(Character target)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void MobSkill(Character target, uint mobSkillId)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -3,10 +3,53 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FFXIVClassic_Map_Server.Actors;
|
||||
|
||||
namespace FFXIVClassic_Map_Server.actors.chara.ai.controllers
|
||||
{
|
||||
class PlayerController : Controller
|
||||
{
|
||||
public PlayerController(Character owner)
|
||||
{
|
||||
this.owner = owner;
|
||||
this.lastUpdate = DateTime.Now;
|
||||
}
|
||||
|
||||
public override void Update(DateTime tick)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void ChangeTarget(Character target)
|
||||
{
|
||||
base.ChangeTarget(target);
|
||||
}
|
||||
|
||||
public override bool Engage(Character target)
|
||||
{
|
||||
// todo: check distance, last swing time, status effects
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool Disengage()
|
||||
{
|
||||
// todo:
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void Cast(Character target, uint spellId)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void Ability(Character target, uint abilityId)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void RangedAttack(Character target)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user