<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.wlabsocks.com/wiki/index.php?action=history&amp;feed=atom&amp;title=IM.GetCompatibleSchemes</id>
	<title>IM.GetCompatibleSchemes - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://www.wlabsocks.com/wiki/index.php?action=history&amp;feed=atom&amp;title=IM.GetCompatibleSchemes"/>
	<link rel="alternate" type="text/html" href="http://www.wlabsocks.com/wiki/index.php?title=IM.GetCompatibleSchemes&amp;action=history"/>
	<updated>2026-05-12T22:53:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>http://www.wlabsocks.com/wiki/index.php?title=IM.GetCompatibleSchemes&amp;diff=874&amp;oldid=prev</id>
		<title>Tayfunwiki: Created page with &quot;== &lt;code&gt;GetCompatibleSchemes&lt;/code&gt; Method in IM Class ==  === Overview === The &lt;code&gt;GetCompatibleSchemes&lt;/code&gt; method in the IM class provides a list of schemes that an actor, identified as the conspirator, can initiate against a target.  === Syntax === &lt;syntaxhighlight lang=&quot;c#&quot;&gt; public static IEnumerable&lt;Scheme&gt; GetCompatibleSchemes(Actor conspirator, Actor target = null) &lt;/syntaxhighlight&gt;  === Parameters ===  * &lt;code&gt;conspirator&lt;/code&gt;: The &lt;code&gt;Actor&lt;/code&gt; obj...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.wlabsocks.com/wiki/index.php?title=IM.GetCompatibleSchemes&amp;diff=874&amp;oldid=prev"/>
		<updated>2024-01-04T20:32:05Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== &amp;lt;code&amp;gt;GetCompatibleSchemes&amp;lt;/code&amp;gt; Method in IM Class ==  === Overview === The &amp;lt;code&amp;gt;GetCompatibleSchemes&amp;lt;/code&amp;gt; method in the IM class provides a list of schemes that an actor, identified as the conspirator, can initiate against a target.  === Syntax === &amp;lt;syntaxhighlight lang=&amp;quot;c#&amp;quot;&amp;gt; public static IEnumerable&amp;lt;Scheme&amp;gt; GetCompatibleSchemes(Actor conspirator, Actor target = null) &amp;lt;/syntaxhighlight&amp;gt;  === Parameters ===  * &amp;lt;code&amp;gt;conspirator&amp;lt;/code&amp;gt;: The &amp;lt;code&amp;gt;Actor&amp;lt;/code&amp;gt; obj...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== &amp;lt;code&amp;gt;GetCompatibleSchemes&amp;lt;/code&amp;gt; Method in IM Class ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
The &amp;lt;code&amp;gt;GetCompatibleSchemes&amp;lt;/code&amp;gt; method in the IM class provides a list of schemes that an actor, identified as the conspirator, can initiate against a target.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
public static IEnumerable&amp;lt;Scheme&amp;gt; GetCompatibleSchemes(Actor conspirator, Actor target = null)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;conspirator&amp;lt;/code&amp;gt;: The &amp;lt;code&amp;gt;Actor&amp;lt;/code&amp;gt; object representing the actor initiating the scheme.&lt;br /&gt;
* &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; (optional): The &amp;lt;code&amp;gt;Actor&amp;lt;/code&amp;gt; object representing the target of the scheme. If null, the method considers schemes applicable to any target.&lt;br /&gt;
&lt;br /&gt;
=== Functionality ===&lt;br /&gt;
&lt;br /&gt;
* The method iterates over all available schemes and filters them based on several criteria:&lt;br /&gt;
** The conspirator has not already activated the scheme against the specified target.&lt;br /&gt;
** The scheme exists in the collection of all schemes.&lt;br /&gt;
** The scheme's associated rules, when started with the given conspirator and target, evaluate to true.&lt;br /&gt;
* Returns a list of &amp;lt;code&amp;gt;Scheme&amp;lt;/code&amp;gt; objects that meet these criteria.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
This method is used to dynamically determine which schemes are viable options for a conspirator to initiate against a target. It's particularly useful in gameplay scenarios involving strategic decisions, intrigue, and character interactions.&lt;br /&gt;
&lt;br /&gt;
=== Example of Usage ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
public class SchemeSelectionManager : MonoBehaviour {&lt;br /&gt;
    public Actor target;&lt;br /&gt;
&lt;br /&gt;
    public void DisplayAvailableSchemes() {&lt;br /&gt;
        if(IM.Player == null) return;&lt;br /&gt;
        var schemes = IM.GetCompatibleSchemes(IM.Player, target);&lt;br /&gt;
        foreach (var scheme in schemes) {&lt;br /&gt;
            Debug.Log($&amp;quot;Available scheme: {scheme.SchemeName}&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;DisplayAvailableSchemes&amp;lt;/code&amp;gt;: Demonstrates how to fetch and log compatible schemes that the player can initiate against a target.&lt;br /&gt;
&lt;br /&gt;
=== Remarks ===&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;code&amp;gt;GetCompatibleSchemes&amp;lt;/code&amp;gt; method is essential in games where characters engage in complex interactions, such as political intrigue or strategic manipulation.&lt;br /&gt;
* It enables dynamic and context-sensitive gameplay, allowing schemes to be presented to the player based on the current state and relationships between characters.&lt;br /&gt;
* This method is particularly relevant in narrative-driven or strategy games, where player choices significantly impact the story or game outcomes.&lt;/div&gt;</summary>
		<author><name>Tayfunwiki</name></author>
	</entry>
</feed>