/// <summary> /// リーチのシナリオを新規作成 /// </summary> /// <param name="reachedRoleSet">リーチになっているセット</param> /// <param name="finally">リーチ再抽選後にキーとなるリールが示すRole</param> private Scenario(RoleSet reachedRoleSet, RoleValue @finally) { if (!reachedRoleSet.IsReach) { throw new InvalidOperationException("入力されたセットはリーチではありません"); } this.First = reachedRoleSet; switch (First.ReachStatus.Value.ReachReelPos) { case ReelPos.Left: Left = ReelScenario.ReachKey(reachedRoleSet.Left, @finally); Middle = ReelScenario.Normal(reachedRoleSet.Middle); Right = ReelScenario.Normal(reachedRoleSet.Right); Finally = new RoleSet(@finally, reachedRoleSet.Middle, reachedRoleSet.Right); break; case ReelPos.Middle: Left = ReelScenario.Normal(reachedRoleSet.Left); Middle = ReelScenario.ReachKey(reachedRoleSet.Middle, @finally); Right = ReelScenario.Normal(reachedRoleSet.Right); Finally = new RoleSet(reachedRoleSet.Left, @finally, reachedRoleSet.Right); break; case ReelPos.Right: Left = ReelScenario.Normal(reachedRoleSet.Left); Middle = ReelScenario.Normal(reachedRoleSet.Middle); Right = ReelScenario.ReachKey(reachedRoleSet.Right, @finally); Finally = new RoleSet(reachedRoleSet.Left, reachedRoleSet.Middle, @finally); break; default: throw new InvalidEnumArgumentException(); } }
/// <summary> /// ノーマルのシナリオを新規作成 /// </summary> /// <param name="roleset"></param> private Scenario(RoleSet roleset) { this.First = roleset; this.Finally = roleset; this.Left = ReelScenario.Normal(roleset.Left); this.Middle = ReelScenario.Normal(roleset.Middle); this.Right = ReelScenario.Normal(roleset.Right); }
/// <summary> /// 通常のリールの演出を新規作成。 /// </summary> /// <param name="scenario"></param> public ReelProduction(ReelScenario scenario) { this._scenario = scenario; }