public override void SetBuffDistributionItem(BuffDistribution distribs, long start, long end, long buffID) { Dictionary <AgentItem, BuffDistributionItem> distrib = distribs.GetDistrib(buffID); AgentItem agent = Src; long value = GetValue(start, end); if (value == 0) { return; } if (distrib.TryGetValue(agent, out BuffDistributionItem toModify)) { toModify.IncrementWaste(value); } else { distrib.Add(agent, new BuffDistributionItem( 0, 0, value, 0, 0, 0)); } }
public override void SetBuffDistributionItem(BuffDistribution distribs, long start, long end, long buffID) { Dictionary <AgentItem, BuffDistributionItem> distrib = distribs.GetDistrib(buffID); long cDur = GetClampedDuration(start, end); if (cDur == 0) { return; } AgentItem agent = _src; AgentItem seedAgent = _seedSrc; if (distrib.TryGetValue(agent, out BuffDistributionItem toModify)) { toModify.IncrementValue(cDur); } else { distrib.Add(agent, new BuffDistributionItem( cDur, 0, 0, 0, 0, 0)); } if (_isExtension) { if (distrib.TryGetValue(agent, out toModify)) { toModify.IncrementExtension(cDur); } else { distrib.Add(agent, new BuffDistributionItem( 0, 0, 0, 0, cDur, 0)); } } if (agent != seedAgent) { if (distrib.TryGetValue(seedAgent, out toModify)) { toModify.IncrementExtended(cDur); } else { distrib.Add(seedAgent, new BuffDistributionItem( 0, 0, 0, 0, 0, cDur)); } } if (agent == ParserHelper._unknownAgent) { if (distrib.TryGetValue(seedAgent, out toModify)) { toModify.IncrementUnknownExtension(cDur); } else { distrib.Add(seedAgent, new BuffDistributionItem( 0, 0, 0, cDur, 0, 0)); } } }