private void AnswerToActionListener(ActionResponseEvent actionResponseEvent) { if (!actionResponseEvent.ActionEvent.Action.Definition.Name.Equals("RecruitmentAction")) { return; } if (actionResponseEvent.SelectedAnswer.Name.Equals("Cancel")) { return; } Habitat habitat = actionResponseEvent.ActionEvent.Action.Params["habitat"] as Habitat; Entity owner = actionResponseEvent.ActionEvent.Target; Army army = owner.GetComponent <Army>(); Fraction fraction = army.Fraction; int maxHire = (int)actionResponseEvent.ActionEvent.Action.Params["population"]; int amount = maxHire * 17; Resource resource = new Resource(new ResourceDefinition("Gold"), amount); RemoveResourceFromFractionEvent removeResource = new RemoveResourceFromFractionEvent(resource, fraction); _eventBus.Post(removeResource); if (!removeResource.Success && removeResource.CountOfDividend == 0) { return; } int hireAmount = removeResource.Success ? maxHire : removeResource.CountOfDividend; army.Creatures[0].Count += hireAmount; habitat.Current -= hireAmount; }
public void AddActionToHandleListener(DynamicActionEvent dynamicActionEvent) { //TODO add more complex way to take actions ActionAnswer actionAnswer = dynamicActionEvent.ActionAnswers[0]; ActionResponseEvent actionResponseEvent = new ActionResponseEvent(dynamicActionEvent, actionAnswer); _eventBus.Post(actionResponseEvent); }
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); }
private void AnswerToActionListener(ActionResponseEvent actionResponseEvent) { _onGoingActions.Remove(actionResponseEvent.ActionEvent.Id); }