Пример #1
0
 public Task <object> Handle(UpdateProductCommand command, CancellationToken cancellationToken)
 {
     if (!command.IsValid())
     {
         NotifyValidationErrors(command);
     }
     else
     {
         Dictionary <Entities.Unit, decimal> otherUnits = new Dictionary <Entities.Unit, decimal>();
         foreach (ProductUnitModel productUnitModel in command.ProductUnitModels)
         {
             Entities.Unit unit = new Entities.Unit(new Identity((uint)productUnitModel.ID), null);
             otherUnits.Add(unit, productUnitModel.WPU);
         }
         Entities.Product product = new Entities.Product
                                    (
             new Identity((uint)command.Id),
             new Name(command.Name),
             new Code(command.Code),
             new Note(command.Note),
             otherUnits,
             new Entities.Unit(new Identity((uint)command.CommonUnitId), null),
             command.WeightPerUnit,
             new Entities.Preservation((uint)command.PreservationId, null)
                                    );
         bool result = _ProductRepository.Update(product);
         if (!result)
         {
             _bus.RaiseEvent(new DomainNotification("Product", "Server error", NotificationCode.Error));
         }
         return(Task.FromResult(result as object));
     }
     return(Task.FromResult(null as object));
 }
Пример #2
0
 private void PerformBuffOnEntity(Entities.Entity entity)
 {
     Entities.Unit unit = (Unit)entity;
     if (mModules != null)
     {
         unit.AddModulesFromData(mModules);
     }
     if (mStatusTags != null)
     {
         foreach (StatusOperationPair pair in mStatusTags)
         {
             if (pair.mShouldAdd)
             {
                 if (!unit.HasStatus(pair.mTag))
                 {
                     unit.AddStatus(pair.mTag);
                 }
             }
             else
             {
                 unit.RemoveStatus(pair.mTag);
             }
         }
     }
     unit.TemporaryHP += mTempHPBuff;
 }
Пример #3
0
        public override void Execute(Entities.Entity Performer, List <Entities.Entity> Selection, CardGameState GS)
        {
            Entities.Unit attacker = (Entities.Unit)Performer;
            Entities.Unit target   = (Entities.Unit)Selection[0];

            attacker.DoAttack(target);
        }
Пример #4
0
        void ISignalListener <SpawnUnitSignal> .SignalFired(SpawnUnitSignal signal)
        {
            ClientOnlyConditionalDebug.Log("spawn");
            var viewInstance = Object.Instantiate(signal.View, signal.Position, Quaternion.identity);
            var unit         = new Entities.Unit(signal.Data, viewInstance);

            _signalService.FireSignal(new UnitSpawnedSignal(unit));
        }
Пример #5
0
 public void CheckLifetime(Entities.Unit parent)
 {
     if (mMaxLifetime > -1)
     {
         if (++mCurrentLifetime >= mMaxLifetime)
         {
             parent.RemoveModule(this.Type, this);
         }
     }
 }
Пример #6
0
        /// <summary>
        /// prepare the task
        /// </summary>
        /// <param name="executingUnit"></param>
        public void Prepare(Entities.Unit executingUnit)
        {
            this.executingUnit = executingUnit;

            // compute the path to the given target
            Point currentTile = FenrirGame.Instance.InGame.Scene.PixelPositionToTilePosition(this.executingUnit.Position);

            this.path = FenrirGame.Instance.InGame.Scene.getPath(currentTile, this.target) ?? new LinkedList <Point>();

            this.executingUnit.Color = Color.CornflowerBlue;
        }
Пример #7
0
 public override void Update(CardGameState GS)
 {
     foreach (CardZone rangeZone in  GS.Players[Node.OwnerIndex].mBoard.RangeZones)
     {
         foreach (Entities.Entity E in rangeZone.List.Cards)
         {
             Entities.Unit U = ((Entities.Unit)E);
             if (U.IsClass(AffectedClass))
             {
                 U.AttackCostModifier += Amount;
             }
         }
     }
 }
Пример #8
0
        public override void Draw()
        {
            Entities.Unit UnitEntity        = (Entities.Unit)mEntity;
            Transform     CardPartTransform = UnityCard.transform.Find("Card");

            CardPartTransform.Find("CardName").gameObject.GetComponent <Text>().text = UnitEntity.Name;
            CardPartTransform.Find("APText").gameObject.GetComponent <Text>().text   = (UnitEntity.BaseAttack + UnitEntity.AttackModifier).ToString() + "/" + (UnitEntity.BaseAttack).ToString();
            CardPartTransform.Find("HPText").gameObject.GetComponent <Text>().text   =
                (UnitEntity.BaseHealth + UnitEntity.HealthModifier).ToString() +
                ((UnitEntity.TemporaryHP != 0) ? ("+" + UnitEntity.TemporaryHP.ToString()) : "")
                + "/" + (UnitEntity.BaseHealth).ToString();
            CardPartTransform.Find("VPText").gameObject.GetComponent <Text>().text     = (UnitEntity.BaseVP + UnitEntity.VPModifier).ToString();
            CardPartTransform.Find("StatusText").gameObject.GetComponent <Text>().text = UnitEntity.StatusString();
            CardPartTransform.Find("ClassText").gameObject.GetComponent <Text>().text  = UnitEntity.ClassString();
        }
Пример #9
0
        protected override bool CheckValidityInternal(Entities.Entity Performer, List <Entities.Entity> Selection, TurnInfo TI)
        {
            Entities.Unit attacker = (Entities.Unit)Performer;
            Entities.Unit target   = (Entities.Unit)Selection[0];

            if (Performer.IsUnit() && Selection[0].IsUnit() && Performer.GetOwnerIndex() != Selection[0].GetOwnerIndex() &&
                TI.GetCPI() == Performer.GetOwnerIndex() && !attacker.HasStatus("Can't attack"))
            {
                return(attacker.CanAttack(target) != -1);
            }
            else
            {
                return(false);
            }
        }
Пример #10
0
 public Task <object> Handle(AddNewUnitCommand command, CancellationToken cancellationToken)
 {
     Entities.Unit u = new Entities.Unit(null, new Name(command.Name));
     if (!command.IsValid())
     {
         NotifyValidationErrors(command);
     }
     else
     {
         UnitModel model = _unitRepository.Add(u);
         if (model != null)
         {
             return(Task.FromResult(model as object));
         }
         _bus.RaiseEvent(new DomainNotification("Unit", "Server error", NotificationCode.Error));
     }
     return(Task.FromResult(null as object));
 }
Пример #11
0
        protected override bool CheckValidityInternal(Entities.Entity Performer, List <Entities.Entity> Selection, TurnInfo TI)
        {
            bool result = true;

            // Even in the case of mAddSelfToSelection
            // we do not check if self qualifies.
            if (mClassTags != null && mClassTags.Count > 0 && Selection != null)
            {
                for (int i = 0; i < Selection.Count && result; i++)
                {
                    Entities.Unit unit = (Entities.Unit)Selection[i];
                    for (int k = 0; k < mClassTags.Count && result; k++)
                    {
                        result = result && unit.IsClass(mClassTags[k].mValue);
                    }
                }
            }
            return(result);
        }
        protected override bool CheckValidityInternal(Entities.Entity Performer, List <Entities.Entity> Selection, TurnInfo TI)
        {
            Effects.Orders.OrderWithUses TheOrder = (Effects.Orders.OrderWithUses)(((Entities.Effect_Entity)Performer).GetEffect());
            Entities.Unit TheTarget = (Entities.Unit)Selection[0];

            Modules.Target.TargettingData TD = new Modules.Target.TargettingData();
            TD.AttackType.Long = true;
            if (TheTarget.GetCurrentRange() == Range.Long)
            {
                TD.TargetType.Long = true;
            }
            else if (TheTarget.GetCurrentRange() == Range.Short)
            {
                TD.TargetType.Short = true;
            }
            int cost = 0;

            TheTarget.CheckTargetStatus(null, TD, ref cost);
            return(TheOrder.GetNumUses(mActionIndex) > 0 && TD.Result());
        }
Пример #13
0
 protected override void SetupInternal(Entities.Entity parent, Loading.ModuleData moduleData)
 {
     mParent = (Entities.Unit)parent;
     foreach (Loading.InfoTagData tag in moduleData.mInfoTags)
     {
         if (tag.mType == "AttackBuff")
         {
             bool result = int.TryParse(tag.mTagValue, out mAttackBuff);
             UnityEngine.Debug.Assert(result);
         }
         else if (tag.mType == "AttackCostBuff")
         {
             bool result = int.TryParse(tag.mTagValue, out mAttackCostBuff);
             UnityEngine.Debug.Assert(result);
         }
         else if (tag.mType == "Status")
         {
             mStatus = tag.mTagValue;
         }
     }
 }
        public override void Execute(Entities.Entity Performer, List <Entities.Entity> Selection, CardGameState GS)
        {
            Entities.Effect_Entity performerEffectEntity = (Entities.Effect_Entity)Performer;
            performerEffectEntity.Owner.SpendCP(GetMinCost());

            int numSalvos = 0;

            foreach (CardZone CZ in performerEffectEntity.Owner.mBoard.RangeZones)
            {
                foreach (Entities.Entity E in CZ.List.Cards)
                {
                    Entities.Unit U = (Entities.Unit)E;
                    if (U.IsClass("Bow") && U.IsClass("Infantry"))
                    {
                        numSalvos += 1;
                    }
                }
            }

            Effects.Orders.OrderWithUses order = (Effects.Orders.OrderWithUses)(performerEffectEntity.GetEffect());
            order.SetUses(mActionIndex, numSalvos);
            order.OrderUsed();
        }
Пример #15
0
        /// <summary>
        /// Returns the CP cost for Runner to attack Target if possible
        /// or -1 if this attack is not possible.
        /// </summary>
        public int Run(Entities.Unit Runner, Entities.Unit Target)
        {
            int            Cost = 0;
            TargettingData TD   = new TargettingData();

            foreach (TargettingModule TM in TargetModules)
            {
                TM.Run(Runner, Target, TD, ref Cost);
            }
            Target.CheckTargetStatus(Runner, TD, ref Cost);
            if (Cost < 0)
            {
                Cost = 0;
            }
            if (!TD.Result())
            {
                return(-1);
            }
            else
            {
                return(Cost);
            }
        }
Пример #16
0
 public Attached_NewTurn(Entities.Unit Parent, string Name) : base()
 {
     this.Parent    = Parent;
     AttachedToName = Name;
     this.Type      = ModuleType.NewTurn;
 }
Пример #17
0
        /// <summary>
        /// prepare the task
        /// </summary>
        /// <param name="executingUnit"></param>
        public void Prepare(Entities.Unit executingUnit)
        {
            this.executingUnit = executingUnit;

            // compute the path to the given target
            Point currentTile = FenrirGame.Instance.InGame.Scene.PixelPositionToTilePosition(this.executingUnit.Position);
            this.path = FenrirGame.Instance.InGame.Scene.getPath(currentTile, this.target) ?? new LinkedList<Point>();

            this.executingUnit.Color = Color.CornflowerBlue;
        }
Пример #18
0
 public StatusTextModule(Entities.Unit parent, string statusText) : base()
 {
     this.Parent = parent;
     mStatusText = statusText;
     Parent.AddStatus(mStatusText);
 }
Пример #19
0
 protected override void SetupInternal(Entities.Entity parent, Loading.ModuleData MD)
 {
     this.Parent = (Entities.Unit)parent;
     mStatusText = MD.Data[0];
     this.Parent.AddStatus(mStatusText);
 }
Пример #20
0
 public abstract void Run(Entities.Unit Target);
Пример #21
0
 public override void Run(Entities.Unit Target)
 {
     Parent.AddStatus(mStatus);
 }
Пример #22
0
 public void Run(Entities.Unit Target)
 {
     this.Run();
 }
Пример #23
0
 public override void Run(Entities.Unit Target)
 {
     Target.Damage(Parent.CalcAttack());
     Parent.AddStatus("Attacked");
 }
Пример #24
0
 public abstract void Run(Entities.Unit Unit1, Entities.Unit Unit2, TargettingData TD, ref int Cost);
Пример #25
0
 public UnitSpawnedSignal(Entities.Unit unit)
 {
     Unit = unit;
 }
Пример #26
0
 public DestroyUnitSignal(Entities.Unit unit)
 {
     Unit = unit;
 }