コード例 #1
0
        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);
        }
コード例 #2
0
        public QuestAction CreateMessageAction(string message, string parameter)
        {
            var messageAction = MessageQuestAction.CreateInstance <MessageQuestAction>();

            messageAction.message   = new StringField(message);
            messageAction.parameter = new StringField(parameter);
            return(messageAction);
        }
コード例 #3
0
        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);
        }