public CombatItem(long time, ulong src_agent, ulong dst_agent, int value, int buff_dmg, ushort overstack_value, int skill_id, ushort src_instid, ushort dst_instid, ushort src_master_instid, ParseEnum.IFF iff, ushort buff, ParseEnum.Result result, ParseEnum.Activation is_activation, ParseEnum.BuffRemove is_buffremove, ushort is_ninety, ushort is_fifty, ushort is_moving, ParseEnum.StateChange is_statechange, ushort is_flanking, ushort is_shields) { this.time = time; this.src_agent = src_agent; this.dst_agent = dst_agent; this.value = value; this.buff_dmg = buff_dmg; this.overstack_value = overstack_value; this.skill_id = skill_id; this.src_instid = src_instid; this.dst_instid = dst_instid; this.src_master_instid = src_master_instid; this.iff = iff; this.is_buff = buff; this.result = result; this.is_activation = is_activation; this.is_buffremove = is_buffremove; this.is_ninety = is_ninety; this.is_fifty = is_fifty; this.is_moving = is_moving; this.is_statechange = is_statechange; this.is_flanking = is_flanking; this.is_shields = is_shields; }
// Constructor public CombatItem(long time, ulong srcAgent, ulong dstAgent, int value, int buffDmg, uint overstackValue, long skillId, ushort srcInstid, ushort dstInstid, ushort srcMasterInstid, ushort dstMasterInstid, ParseEnum.IFF iff, byte isBuff, ParseEnum.Result result, ParseEnum.Activation isActivation, ParseEnum.BuffRemove isBuffRemove, byte isNinety, byte isFifty, byte isMoving, ParseEnum.StateChange isStateChange, byte isFlanking, byte isShields, byte isOffcycle) { Time = time; SrcAgent = srcAgent; DstAgent = dstAgent; Value = value; BuffDmg = buffDmg; OverstackValue = overstackValue; SkillID = skillId; SrcInstid = srcInstid; DstInstid = dstInstid; SrcMasterInstid = srcMasterInstid; DstMasterInstid = dstMasterInstid; IFF = iff; IsBuff = isBuff; Result = result; IsActivation = isActivation; IsBuffRemove = isBuffRemove; IsNinety = isNinety; IsFifty = isFifty; IsMoving = isMoving; IsStateChange = isStateChange; IsFlanking = isFlanking; IsShields = isShields; IsOffcycle = isOffcycle; }
private void Remove(ushort provokedBy, long boonDuration, long start, ParseEnum.BuffRemove removeType) { if (GenerationSimulation.Count > 0) { BoonSimulationItem last = GenerationSimulation.Last(); if (last.End > start) { last.SetEnd(start); } } switch (removeType) { case ParseEnum.BuffRemove.All: foreach (BoonStackItem stackItem in BoonStack) { OverstackSimulationResult.Add(new BoonSimulationOverstackItem(stackItem.Src, stackItem.BoonDuration, start)); CleanseSimulationResult.Add(new BoonSimulationCleanseItem(provokedBy, stackItem.BoonDuration, start)); } BoonStack.Clear(); break; case ParseEnum.BuffRemove.Single: case ParseEnum.BuffRemove.Manual: for (int i = 0; i < BoonStack.Count; i++) { BoonStackItem stackItem = BoonStack[i]; if (Math.Abs(boonDuration - stackItem.BoonDuration) < 10) { OverstackSimulationResult.Add(new BoonSimulationOverstackItem(stackItem.Src, stackItem.BoonDuration, start)); CleanseSimulationResult.Add(new BoonSimulationCleanseItem(provokedBy, stackItem.BoonDuration, start)); BoonStack.RemoveAt(i); break; } } break; default: break; } _logic.Sort(_log, BoonStack); Update(0); }
// Constructor public CombatItem(long time, ulong srcAgent, ulong dstAgent, int value, int buffDmg, uint overstackValue, uint skillId, ushort srcInstid, ushort dstInstid, ushort srcMasterInstid, ushort dstMasterInstid, ParseEnum.IFF iff, byte isBuff, byte result, ParseEnum.Activation isActivation, ParseEnum.BuffRemove isBuffRemove, byte isNinety, byte isFifty, byte isMoving, ParseEnum.StateChange isStateChange, byte isFlanking, byte isShields, byte isOffcycle, uint pad) { this.Time = time; SrcAgent = srcAgent; DstAgent = dstAgent; Value = value; BuffDmg = buffDmg; OverstackValue = overstackValue; SkillID = skillId; SrcInstid = srcInstid; DstInstid = dstInstid; SrcMasterInstid = srcMasterInstid; DstMasterInstid = dstMasterInstid; IFF = iff; IsBuff = isBuff; Result = result; IsActivation = isActivation; IsBuffRemove = isBuffRemove; IsNinety = isNinety; IsFifty = isFifty; IsMoving = isMoving; IsStateChange = isStateChange; IsFlanking = isFlanking; IsShields = isShields; IsOffcycle = isOffcycle; Pad = pad; // break pad var pads = BitConverter.GetBytes(Pad); Pad1 = pads[0]; Pad2 = pads[1]; Pad3 = pads[2]; Pad4 = pads[3]; }
private static CombatItem ReadCombatItemRev1(BinaryReader reader) { // 8 bytes: time long time = reader.ReadInt64(); // 8 bytes: src_agent ulong srcAgent = reader.ReadUInt64(); // 8 bytes: dst_agent ulong dstAgent = reader.ReadUInt64(); // 4 bytes: value int value = reader.ReadInt32(); // 4 bytes: buff_dmg int buffDmg = reader.ReadInt32(); // 4 bytes: overstack_value uint overstackValue = reader.ReadUInt32(); // 4 bytes: skill_id uint skillId = reader.ReadUInt32(); // 2 bytes: src_instid ushort srcInstid = reader.ReadUInt16(); // 2 bytes: dst_instid ushort dstInstid = reader.ReadUInt16(); // 2 bytes: src_master_instid ushort srcMasterInstid = reader.ReadUInt16(); // 2 bytes: dst_master_instid ushort dstmasterInstid = reader.ReadUInt16(); // 1 byte: iff ParseEnum.IFF iff = ParseEnum.GetIFF(reader.ReadByte()); // 1 byte: buff byte buff = reader.ReadByte(); // 1 byte: result byte result = reader.ReadByte(); // 1 byte: is_activation ParseEnum.Activation isActivation = ParseEnum.GetActivation(reader.ReadByte()); // 1 byte: is_buffremove ParseEnum.BuffRemove isBuffRemove = ParseEnum.GetBuffRemove(reader.ReadByte()); // 1 byte: is_ninety byte isNinety = reader.ReadByte(); // 1 byte: is_fifty byte isFifty = reader.ReadByte(); // 1 byte: is_moving byte isMoving = reader.ReadByte(); // 1 byte: is_statechange ParseEnum.StateChange isStateChange = ParseEnum.GetStateChange(reader.ReadByte()); // 1 byte: is_flanking byte isFlanking = reader.ReadByte(); // 1 byte: is_flanking byte isShields = reader.ReadByte(); // 1 byte: is_flanking byte isOffcycle = reader.ReadByte(); // 4 bytes: pad uint pad = reader.ReadUInt32(); //save // Add combat return(new CombatItem(time, srcAgent, dstAgent, value, buffDmg, overstackValue, skillId, srcInstid, dstInstid, srcMasterInstid, dstmasterInstid, iff, buff, result, isActivation, isBuffRemove, isNinety, isFifty, isMoving, isStateChange, isFlanking, isShields, isOffcycle, pad)); }
public override void Remove(AgentItem by, long removedDuration, int removedStacks, long time, ParseEnum.BuffRemove removeType, uint id) { switch (removeType) { case ParseEnum.BuffRemove.All: foreach (BuffStackItem stackItem in BuffStack) { WasteSimulationResult.Add(new BuffSimulationItemWasted(stackItem.Src, stackItem.Duration, time)); if (stackItem.Extensions.Count > 0) { foreach ((AgentItem src, long value) in stackItem.Extensions) { WasteSimulationResult.Add(new BuffSimulationItemWasted(src, value, time)); } } } BuffStack.Clear(); break; case ParseEnum.BuffRemove.Single: for (int i = 0; i < BuffStack.Count; i++) { BuffStackItem stackItem = BuffStack[i]; if (Math.Abs(removedDuration - stackItem.TotalBoonDuration()) < GeneralHelper.ServerDelayConstant) { WasteSimulationResult.Add(new BuffSimulationItemWasted(stackItem.Src, stackItem.Duration, time)); if (stackItem.Extensions.Count > 0) { foreach ((AgentItem src, long value) in stackItem.Extensions) { WasteSimulationResult.Add(new BuffSimulationItemWasted(src, value, time)); } } BuffStack.RemoveAt(i); break; } } break; default: break; } _logic.Sort(Log, BuffStack); }
public BoonRemovalLog(long time, AgentItem src, long value, ParseEnum.BuffRemove removeType) : base(time, src, value) { _removeType = removeType; }
public BoonRemovalLog(long time, ushort srcInstid, long value, ParseEnum.BuffRemove removeType) : base(time, srcInstid, value) { _removeType = removeType; }
private static CombatItem ReadCombatItem(BinaryReader reader) { // 8 bytes: time long time = reader.ReadInt64(); // 8 bytes: src_agent ulong src_agent = reader.ReadUInt64(); // 8 bytes: dst_agent ulong dst_agent = reader.ReadUInt64(); // 4 bytes: value int value = reader.ReadInt32(); // 4 bytes: buff_dmg int buff_dmg = reader.ReadInt32(); // 2 bytes: overstack_value ushort overstack_value = reader.ReadUInt16(); // 2 bytes: skill_id ushort skill_id = reader.ReadUInt16(); // 2 bytes: src_instid ushort src_instid = reader.ReadUInt16(); // 2 bytes: dst_instid ushort dst_instid = reader.ReadUInt16(); // 2 bytes: src_master_instid ushort src_master_instid = reader.ReadUInt16(); // 9 bytes: garbage ParseHelper.safeSkip(reader.BaseStream, 9); // 1 byte: iff ParseEnum.IFF iff = ParseEnum.getIFF(reader.ReadByte()); // 1 byte: buff ushort buff = (ushort)reader.ReadByte(); // 1 byte: result ParseEnum.Result result = ParseEnum.getResult(reader.ReadByte()); // 1 byte: is_activation ParseEnum.Activation is_activation = ParseEnum.getActivation(reader.ReadByte()); // 1 byte: is_buffremove ParseEnum.BuffRemove is_buffremoved = ParseEnum.getBuffRemove(reader.ReadByte()); // 1 byte: is_ninety ushort is_ninety = (ushort)reader.ReadByte(); // 1 byte: is_fifty ushort is_fifty = (ushort)reader.ReadByte(); // 1 byte: is_moving ushort is_moving = (ushort)reader.ReadByte(); // 1 byte: is_statechange ParseEnum.StateChange is_statechange = ParseEnum.getStateChange(reader.ReadByte()); // 1 byte: is_flanking ushort is_flanking = (ushort)reader.ReadByte(); // 1 byte: is_flanking ushort is_shields = (ushort)reader.ReadByte(); // 2 bytes: garbage ParseHelper.safeSkip(reader.BaseStream, 2); //save // Add combat return(new CombatItem(time, src_agent, dst_agent, value, buff_dmg, overstack_value, skill_id, src_instid, dst_instid, src_master_instid, iff, buff, result, is_activation, is_buffremoved, is_ninety, is_fifty, is_moving, is_statechange, is_flanking, is_shields)); }