Beispiel #1
0
        public bool Supply(MsgInformationEx MsgDTO, object[] param)
        {
            var castle = KindomCastle.Get(MsgDTO.FromGroup, MsgDTO.FromQQ);

            var starvingGroups = SoldierGroup.StarvingGroups(MsgDTO.FromQQ);

            if (starvingGroups.IsNullOrEmpty())
            {
                MsgSender.PushMsg(MsgDTO, "你没有需要补给的军队!", true);
                return(false);
            }

            var totalConsume     = 0;
            var feededGroupCount = 0;

            foreach (var starvingGroup in starvingGroups)
            {
                if (castle.Commissariat < starvingGroup.Count)
                {
                    break;
                }

                castle.Commissariat -= starvingGroup.Count;
                starvingGroup.Feed();
                totalConsume += starvingGroup.Count;
                feededGroupCount++;
            }
            castle.Update();

            var session = new MsgSession(MsgDTO);

            session.Add("补给完成!");
            session.Add($"共补给 {feededGroupCount}支军队,共消耗粮草 {totalConsume}");
            session.Add($"当前剩余 {starvingGroups.Count - feededGroupCount}支军队尚未补给,当前剩余粮草 {castle.Commissariat}");

            session.Send();
            return(true);
        }