public void setTarget() { // 紙とステープラを生成し、setTargetで紙をセット var target = new Paper(); var stapler = new Stapler(); stapler.setTarget(target); // リフレクションを使って、きちんとセットされたか確認 var setObject = (Paper)stapler.GetType().GetField("target", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(stapler); Assert.AreEqual(target, setObject); }
public void execute_turnOver(int code, bool initial, bool assert) { // テストで使用するオブジェクトを生成 var paper = Paper.instance(initial, Paper.AlignState.Excellent); Assert.AreEqual(paper.IsFaceUp, initial); var stapler = new Stapler(); stapler.setTarget(paper); var clickPosition = (Vector3)stapler.GetType().GetField("clickPosition", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(stapler); clickPosition = Vector3.zero; // 実行 var distance = getRangeToJudge(stapler, "RANGE_TO_JUDGE_AS_HORIZONTAL_SWIPE"); var objects = new object[1]; objects[0] = (object)new Vector3((distance + 1) * code, 0, 0); stapler.GetType().GetMethod("execute", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(stapler, objects); // paper.turnOverが実行されたはずなので結果を確認する Assert.AreEqual(paper.IsFaceUp, assert); }
public void execute_bind(int xCode, int yCode) { // テストで使用するオブジェクトを生成 var paper = Paper.instance(true, Paper.AlignState.Excellent); Assert.AreEqual(getNeedleListCount(paper), 0); var stapler = new Stapler(); stapler.setTarget(paper); var clickPosition = (Vector3)stapler.GetType().GetField("clickPosition", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(stapler); clickPosition = Vector3.zero; // 実行 var horizontal = getRangeToJudge(stapler, "RANGE_TO_JUDGE_AS_HORIZONTAL_SWIPE"); var vertical = getRangeToJudge(stapler, "RANGE_TO_JUDGE_AS_VERTICAL_SWIPE"); var objects = new object[1]; objects[0] = (object)new Vector3((horizontal - 0.1f) * xCode, (vertical - 0.1f) * yCode, 0); stapler.GetType().GetMethod("execute", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(stapler, objects); // paper.bindが実行されたはずなので結果を確認する Assert.AreEqual(getNeedleListCount(paper), 1); }
public void execute_align(Paper.AlignState initial, Paper.AlignState assert) { // テストで使用するオブジェクトを生成 var paper = Paper.instance(true, initial); Assert.AreEqual(paper.AlignStatus, initial); var stapler = new Stapler(); stapler.setTarget(paper); var clickPosition = (Vector3)stapler.GetType().GetField("clickPosition", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(stapler); clickPosition = Vector3.zero; // 実行 var distance = getRangeToJudge(stapler, "RANGE_TO_JUDGE_AS_VERTICAL_SWIPE"); var objects = new object[1]; objects[0] = (object)new Vector3(0, distance + 1, 0); stapler.GetType().GetMethod("execute", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(stapler, objects); Debug.Log(paper.AlignStatus); // paper.alignが実行されたはずなので結果を確認する Assert.AreEqual(paper.AlignStatus, assert); }
public Character(Characterclass c, string name, int lvl = 0) { inventory = new Items[4]; switch (c) { case Character.Characterclass.COUNT: stats = new int[] { 20, 20, 35, 20, 35, 10 }; Calc c = new Calc("TI 83+"); inventory[0] = c; break; case Character.Characterclass.GUARD: stats = new int[] { 45, 15, 45, 0, 15, 10 }; Stick st = new Stick("Basic stick"); inventory[0] = st; break; case Character.Characterclass.ING: stats = new int[] { 25, 15, 5, 40, 35, 35 }; Computer co = new Computer("Raspberry Pi 0"); break; case Character.Characterclass.INTER: stats = new int[] { 15, 15, 15, 15, 15, 15 }; break; case Character.Characterclass.MAN: stats = new int[] { 10, 35, 10, 35, 10, 20 }; Money m = new Money("just a little bit"); inventory[0] = m; break; case Character.Characterclass.PDG: stats = new int[] { 10, 5, 10, 5, 10, 10 }; Money m = new Money("just a little bit"); inventory[0] = m; break; case Character.Characterclass.SEC: stats = new int[] { 10, 10, 10, 10, 10, 40 }; Stapler s = new Stapler("Stapler of doom", 0, 5); inventory[0] = s; break; case Character.Characterclass.STAG: stats = new int[] { 20, 20, 20, 20, 20, 20 }; Coffee cof = new Coffee("Nespresso"); inventory[0] = cof; break; case Character.Characterclass.TECH: stats = new int[] { 15, 45, 5, 0, 20, 45 }; Broom b = new Broom("Nimbus 2000"); inventory[0] = b; break; default: stats = new int[] { 25, 25, 25, 25, 25, 25 }; break; } for (int i = 0; i < 6; i++) { stats[i] += Random.Range(-2, 2); if (stats[i] < 0) { stats[i] = 0; } } life = stats[0]; maxLife = life; this.lvl = 1; atk = stats[1]; def = stats[2]; matk = stats[3]; mdef = stats[4]; spd = stats[5]; life = Life; maxLife = life; this.c = c; this.lvl = lvl; this.cname = name; }
// RANGE_TO_JUDGE_AS_HORIZONTAL_SWIPEまたはRANGE_TO_JUDGE_AS_VERTICAL_SWIPEを取得する private float getRangeToJudge(Stapler target, string fieldName) { return((float)target.GetType().GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Static).GetValue(target)); }