Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
    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);
    }
Esempio n. 6
0
    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);
    }