- ================================
- Monster Class:
- ================================
- public class Monster
- {
- List<string> statusEffects;
- public Monster()
- {
- statusEffects = new List<string>();
- }
- public bool HasStatusEffect(string statusEffectName)
- {
- }
- public bool AddStatusEffect(string statusEffectName)
- {
- }
- public bool RemoveStatusEffect(string statusEffectName)
- {
- }
- }
- ================================
- Python Script:
- ================================
- import sys
- def Poison(monster):
- if monster.HasStatusEffect("poison"):
- print 'Monster already poisoned!'
- else:
- monster.AddStatusEffect("poison")
- print 'Monster poisoned!'
- def Unpoison(monster):
- if monster.RemoveStatusEffect("poison"): # returns true if successful
- print 'Monster unpoisoned!'
- else:
- print 'Monster is not currently poisoned!'
- ================================
- C# Code:
- ================================
- static void Main(string[] args)
- {
- // Instantiate new monster
- Monster myMonster = new Monster();
- // Host a new python runtime
- var pythonRuntime = Python.CreateRuntime();
- // Create our execution object and run the defined methods
- dynamic test = pythonRuntime.UseFile(@"C:\Test.py");
- test.Poison(myMonster);
- test.Poison(myMonster);
- test.Unpoison(myMonster);
- test.Unpoison(myMonster);
- }
- ================================
- Returns:
- ================================
- Monster poisoned!
- Monster already poisoned!
- Monster unpoisoned!
- Monster is not currently poisoned!