示例#1
0
        private void AddResourceToFraction(Entity resourceEntity, Army army)
        {
            Resource resource = resourceEntity.GetComponent <Resource>();
            AddResourceToFractionEvent addResourceToFractionEvent = new AddResourceToFractionEvent(resource, army.Fraction);

            _eventBus.Post(addResourceToFractionEvent);

            RemoveResourceOnWorldMapEvent removeResourceOnWorldMapEvent = new RemoveResourceOnWorldMapEvent(resourceEntity);

            _eventBus.Post(removeResourceOnWorldMapEvent);
        }
示例#2
0
        public override void Process(Entity entity, Structure structure, Mine mine)
        {
            if (structure.Fraction == null)
            {
                return;
            }

            Resource resource = new Resource(mine.ResourceDefinition, mine.Production);
            AddResourceToFractionEvent addResourceToFractionEvent = new AddResourceToFractionEvent(resource, structure.Fraction);

            _jEventBus.Post(addResourceToFractionEvent);
        }
        private void AnswerToActionListener(ActionResponseEvent actionResponseEvent)
        {
            if (!actionResponseEvent.ActionEvent.Action.Definition.Name.Equals("ChestAction"))
            {
                return;
            }

            Entity   owner    = actionResponseEvent.ActionEvent.Target;
            Fraction fraction = owner.GetComponent <Army>().Fraction;
            int      amount   = (int)actionResponseEvent.ActionEvent.Action.Params["gold"];
            Resource resource = new Resource(new ResourceDefinition("Gold"), amount);
            AddResourceToFractionEvent addResourceToFractionEvent = new AddResourceToFractionEvent(resource, fraction);

            _eventBus.Post(addResourceToFractionEvent);
        }
示例#4
0
        public void AddResourceListener(AddResourceToFractionEvent addResourceToFractionEvent)
        {
            if (addResourceToFractionEvent.Fraction == null)
            {
                return;
            }
            Fraction fraction = addResourceToFractionEvent.Fraction;
            Resource resource = addResourceToFractionEvent.Resource;

            if (!fraction.Resources.ContainsKey(resource.Definition.Name))
            {
                Resource fractionResource = new Resource(resource.Definition, 0);
                fraction.Resources.Add(resource.Definition.Name, fractionResource);
            }

            ChangeResourceAmount(fraction, resource);
        }