public EventButton(QuestButtonData buttonData) { label = buttonData.Label; string colorRGB = ColorUtil.FromName(buttonData.Color); // Check format is valid if ((colorRGB.Length != 7 && colorRGB.Length != 9) || (colorRGB[0] != '#')) { Game.Get().quest.log.Add(new Quest.LogEntry("Warning: Button color must be in #RRGGBB format or a known name", true)); } // Hexadecimal to float convert (0x00-0xFF -> 0.0-1.0) colour.r = (byte)System.Convert.ToByte(colorRGB.Substring(1, 2), 16); colour.g = (byte)System.Convert.ToByte(colorRGB.Substring(3, 2), 16); colour.b = (byte)System.Convert.ToByte(colorRGB.Substring(5, 2), 16); if (colorRGB.Length == 9) { colour.a = (byte)System.Convert.ToByte(colorRGB.Substring(7, 2), 16); } else { colour.a = 255; // opaque by default } this.condition = buttonData.Condition; this.action = buttonData.ConditionFailedAction; }
public EditorWindowQuestButtonEdit(string title, QuestButtonData questButton, Action <QuestButtonData> okAction) { this.title = title; this.originalButton = questButton; this.newButton = new QuestButtonData(questButton.Label, questButton.EventNames, new VarTests(questButton.Condition.VarTestsComponents.ToList()), questButton.RawConditionFailedAction); this.okAction = okAction; }
private void EditCondition(QuestButtonData nextEvent) { var editorWindowVarTestsEdit = new EditorWindowQuestButtonEdit(CommonStringKeys.TRIGGER.Translate() + " - " + nextEvent.Label.Translate(), nextEvent, button => { nextEvent.Condition = button.Condition; nextEvent.RawConditionFailedAction = button.RawConditionFailedAction; Update(); }); editorWindowVarTestsEdit.Draw(); }
private static bool IsButtonEnabled(QuestButtonData b, VarManager varManager) { return(b.ConditionFailedAction == QuestButtonAction.NONE || !b.HasCondition || varManager.Test(b.Condition)); }