Exemple #1
0
        /// <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();
            }
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
 /// <summary>
 /// リーチのシナリオを作成
 /// </summary>
 /// <param name="reachedRoleSet">リーチのRoleset</param>
 /// <param name="afterReachRole">リーチ再抽選後にキーとなるリールが示すRole</param>
 /// <returns></returns>
 public static Scenario Reach(RoleSet reachedRoleSet, RoleValue afterReachRole)
 {
     return(new Scenario(reachedRoleSet, afterReachRole));
 }
Exemple #4
0
 /// <summary>
 /// ハズレのシナリオを作成
 /// </summary>
 /// <param name="roleSet"></param>
 /// <returns></returns>
 public static Scenario Lose(RoleSet roleSet)
 {
     return(new Scenario(roleSet));
 }
 public SlotResult(RoleSet finalRoleSet)
 {
     this.roleSet = finalRoleSet;
 }