示例#1
0
        public override void SetBuffDistributionItem(BuffDistribution distribs, long start, long end, long boonid)
        {
            long cDur = GetClampedDuration(start, end);

            if (cDur == 0)
            {
                return;
            }
            foreach (BuffSimulationItemBase item in Stacks)
            {
                item.SetBuffDistributionItem(distribs, start, end, boonid);
            }
        }
        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.IncrementOverstack(value);
            }
            else
            {
                distrib.Add(agent, new BuffDistributionItem(
                                0,
                                value, 0, 0, 0, 0));
            }
        }
        public override void SetBuffDistributionItem(BuffDistribution distribs, long start, long end, long buffID)
        {
            long cDur = GetClampedDuration(start, end);

            if (cDur == 0)
            {
                return;
            }
            Dictionary <AgentItem, BuffDistributionItem> distrib = distribs.GetDistrib(buffID);
            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));
                }
            }
        }
示例#4
0
 public override void SetBuffDistributionItem(BuffDistribution distribs, long start, long end, long boonid)
 {
     Stacks.First().SetBuffDistributionItem(distribs, start, end, boonid);
 }
 public abstract void SetBuffDistributionItem(BuffDistribution distribs, long start, long end, long boonid);