public override int DetermineReward(int points, Quest quest, EntityType entityType) { var val = (int)pointsCurve.Evaluate(points); if (!StringField.IsNullOrEmpty(thing)) { var bodyText = BodyTextQuestContent.CreateInstance <BodyTextQuestContent>(); bodyText.bodyText = new StringField(val + " " + thing); quest.offerContentList.Add(bodyText); } var messageQuestAction = MessageQuestAction.CreateInstance <MessageQuestAction>(); messageQuestAction.senderID = new StringField(QuestMachineTags.QUESTGIVERID); messageQuestAction.targetID = target; messageQuestAction.message = message; messageQuestAction.parameter = parameter; messageQuestAction.value.valueType = MessageValueType.Int; messageQuestAction.value.intValue = val; var successInfo = quest.GetStateInfo(QuestState.Successful); successInfo.actionList.Add(messageQuestAction); return(consumePoints ? (points - val) : points); }
public QuestAction CreateMessageAction(string message, string parameter) { var messageAction = MessageQuestAction.CreateInstance <MessageQuestAction>(); messageAction.message = new StringField(message); messageAction.parameter = new StringField(parameter); return(messageAction); }
public override int DetermineReward(int points, Quest quest, EntityType entityType) { var xp = (entityType != null) ? (int)(points * entityType.GetRewardMultiplier(RewardMultiplier.XP)) : points; var bodyText = BodyTextQuestContent.CreateInstance <BodyTextQuestContent>(); bodyText.bodyText = new StringField(xp + " XP"); quest.offerContentList.Add(bodyText); var xpAction = MessageQuestAction.CreateInstance <MessageQuestAction>(); xpAction.senderID = new StringField(QuestMachineTags.QUESTGIVERID); // Send from quest giver. xpAction.targetID = new StringField(QuestMachineTags.QUESTERID); // Send to quester (player). xpAction.message = new StringField("Add XP"); xpAction.parameter = new StringField(xp.ToString()); xpAction.value = new MessageValue(xp); var successInfo = quest.GetStateInfo(QuestState.Successful); successInfo.actionList.Add(xpAction); return(points); }