project-meteor-server/FFXIVClassic Map Server/packets/send/Actor/battle/BattleActionContainer.cs
yogurt c5ce2ec771 Combat additions
Added formulas for base EXP gain and chain experience
Added basic scripts for most player abilities and effects
Added stat gains for some abilities
Changed status flags
Fixed bug with player death
Fixed bug where auto attacks didnt work when not locked on
Added traits
2018-04-18 16:06:41 -05:00

77 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FFXIVClassic_Map_Server.packets.send.actor.battle
{
class BattleActionContainer
{
private List<BattleAction> actionsList = new List<BattleAction>();
//EXP messages are always the last mesages in battlea ction packets, so they get appended after all the rest of the actions are done.
private List<BattleAction> expActionList = new List<BattleAction>();
public BattleActionContainer()
{
}
public void AddAction(uint targetId, ushort worldMasterTextId, uint effectId, ushort amount = 0, byte param = 0, byte hitNum = 0)
{
AddAction(new BattleAction(targetId, worldMasterTextId, effectId, amount, param, hitNum));
}
//Just to make scripting simpler
public void AddMPAction(uint targetId, ushort worldMasterTextId, ushort amount)
{
uint effectId = (uint) (HitEffect.MagicEffectType | HitEffect.MP | HitEffect.Heal);
AddAction(targetId, worldMasterTextId, effectId, amount);
}
public void AddHPAction(uint targetId, ushort worldMasterTextId, ushort amount)
{
uint effectId = (uint)(HitEffect.MagicEffectType | HitEffect.Heal);
AddAction(targetId, worldMasterTextId, effectId, amount);
}
public void AddTPAction(uint targetId, ushort worldMasterTextId, ushort amount)
{
uint effectId = (uint)(HitEffect.MagicEffectType | HitEffect.TP);
AddAction(targetId, worldMasterTextId, effectId, amount);
}
public void AddAction(BattleAction action)
{
if (action != null)
actionsList.Add(action);
}
public void AddActions(List<BattleAction> actions)
{
actionsList.AddRange(actions);
}
public void AddEXPAction(BattleAction action)
{
expActionList.Add(action);
}
public void AddEXPActions(List<BattleAction> actionList)
{
expActionList.AddRange(actionList);
}
public void CombineLists()
{
actionsList.AddRange(expActionList);
}
public List<BattleAction> GetList()
{
return actionsList;
}
}
}