public override bool Action(Verb verb, Dictionary <string, object> data) { double duration = -1; if (data.ContainsKey("duration")) { try { duration = (double)data["duration"]; } catch { } } if (duration == -1) { return(false); } verb.blackboard["actionTime"] = duration; // Message for Verbose pages data["message"] = new ObservableText($"[0] {verb.displayLabel.ToLower()} for {duration.ToString()}.", new Tuple <GameObject, string>(verb.self, "name top")); data["displayAfter"] = false; TimelineManager.instance.OnAction(data); return(true); }
public override bool Action(Dictionary <string, object> data) { GameObject target = null; if (data.ContainsKey("target")) { target = data["target"] as GameObject; } if (target == null) { return(false); } if (Check(target) != CheckResult.VALID) { return(false); } // Message for Verbose pages data["message"] = new ObservableText($"[0] {displayLabel.ToLower()} [1].", new Tuple <GameObject, string>(self, "name top"), new Tuple <GameObject, string>(target, "name") ); data["turnPage"] = true; data["displayAfter"] = true; TimelineManager.instance.OnAction(data); self.actor.Control(target); return(true); }
public bool Action(Verb verb, AttachmentPoint target) { Physical physicalSelf = verb.self as Physical; if (physicalSelf != null) { Physical parent = PhysicalUtilities.FindParentPhysical(physicalSelf); target.Attach(parent); } else { target.Attach(verb.self); } // Create data dictionary to be passed to observers Dictionary <string, object> data = new Dictionary <string, object>(); // Message for Verbose pages data["message"] = new ObservableText($"[0] {verb.displayLabel.ToLower()} into [1].", new Tuple <GameObject, string>(verb.self, "name top"), new Tuple <GameObject, string>(target.GetParent(), "name") ); data["turnPage"] = true; data["displayAfter"] = true; TimelineManager.instance.OnAction(data); return(true); }
public override bool Action(Verb verb, Dictionary <string, object> data) { GameObject target = null; if (data.ContainsKey("target")) { target = data["target"] as GameObject; } if (target == null) { return(false); } if (verb.Check(target) != CheckResult.VALID) { return(false); } bool drop = target.container.GetParent() == verb.self; if (drop) { verb.self.container.Attach(target); } else { try { PhysicalAttachmentPoint inventory = (PhysicalAttachmentPoint)verb.blackboard["inventory"]; inventory.Attach(target); } catch (SystemException e) { WaywardManager.instance.Log($@"<red>GrabVerb of GameObject '{verb.self.GetName()}' failed in Action:</red> {e}"); return(false); } } // Message for Verbose pages string label = drop ? "drop" : "pickup"; data["message"] = new ObservableText($"[0] { label } [1].", new Tuple <GameObject, string>(verb.self, "name top"), new Tuple <GameObject, string>(target, "name") ); data["displayAfter"] = false; TimelineManager.instance.OnAction(data); return(true); }
private void SendMessage(Verb verb, GameObject target, Dictionary <string, object> data = null) { if (data == null) { data = new Dictionary <string, object>(); } // Message for Verbose pages data["message"] = new ObservableText($"[0] {verb.displayLabel.ToLower()} into [1].", new Tuple <GameObject, string>(verb.self, "name top"), new Tuple <GameObject, string>(target, "name") ); data["displayAfter"] = true; TimelineManager.instance.OnAction(data); }
public override bool Action(Verb verb, Dictionary <string, object> data) { string message = null; if (data.ContainsKey("message")) { message = data["message"] as string; } if (message == null) { return(false); } // Message for Verbose pages data["message"] = new ObservableText($"[0] { message }.", new Tuple <GameObject, string>(verb.self, "name top") ); data["turnPage"] = false; data["displayAfter"] = false; TimelineManager.instance.OnAction(data); return(true); }