Пример #1
0
 public ItemUsedResult(ItemBasis item, MyCharacterController owner, bool throwhit,params ObjectEntity[] targets)
     : base(owner)
 {
     Item = item;
     Targets = targets;
     ThrowHit = throwhit;
 }
 public void startOperation(MyCharacterController speaker,MyCharacterController own)
 {
     if (TalkActionList.Count != 0)
     {
         GameControlProxy.Instance.StartCoroutine(operation(speaker,own));
     }
 }
Пример #3
0
 protected override void caneEffect(MyCharacterController user, ObjectEntity target)
 {
     var c = target as MyCharacterController;
     if (c != null) {
         c.registerBuff(new MissedSwing(c,BasisParameter.EffectPoint));
     }
 }
Пример #4
0
 public override void applyItemEffect(MyCharacterController src, params ObjectEntity[] targets)
 {
     if (Item != null) {
         prevname = Item.Name;
         success = Item.expantionInventory(BasisParameter.EffectPoint);
     }
 }
Пример #5
0
 protected override void caneEffect(MyCharacterController user, ObjectEntity target)
 {
     MyCharacterController c = target as MyCharacterController;
     if (c != null) {
         GameController.FieldActionController.objectBullRush(user, c, BasisParameter.BullRushDistance, BasisParameter.EffectPoint);
     }
 }
Пример #6
0
 public override void turnEnd(MyCharacterController user)
 {
     base.turnEnd(user);
     if (GameController.Rnd.lottery(ExertionProbability)) {
         GameController.FieldActionController.explosion(user.CurrentPosition, FieldActionController.ExplisionLevel.TWO);
     }
 }
Пример #7
0
 protected override void caneEffect(MyCharacterController user, ObjectEntity target)
 {
     if (isTargetObject(target)) {
         var c = (target as MyCharacterController);
         c.registerBuff(new SpeedDown(c, BasisParameter.EffectPoint));
     }
 }
Пример #8
0
 public override DamageOffset calcOffsetWhenOffensiveSide(DamageOffset offset, MyCharacterController user, MyCharacterController target)
 {
     if (target.Parameter.CharacterElement == this.TargetElemental) {
         offset.addOffensiveSideFinalDamageOffset(levelrate[(int)this.CurrentAbilityLevel]);
     }
     return offset;
 }
Пример #9
0
    public override void applyItemEffect(MyCharacterController src, params ObjectEntity[] targets)
    {
        var equip = Item as EquipmentItemBasis;
        if (Item is BangleBasis)
        {
            GameController.PlayingLogger.addLogFormat("{0} はメッキのおかげで丈夫さを取り戻した!",Item.Name);
            (equip as BangleBasis).repair();

        }
        else {
            Type proof;
            switch (equip.Code) {
                case ItemCode.WEAPON:
                    proof = typeof(Rustproof<WeaponBasis>);
                    break;
                case ItemCode.SHIELD:
                    proof = typeof(Rustproof<ShieldBasis>);
                    break;
                default:
                    proof = typeof(Rustproof<WeaponBasis>);
                    break;
            }

            if (!equip.abilityRegisterd(proof))
            {
                equip.CommpositedAbilities.Add(Activator.CreateInstance(proof) as EquipmentAbilityBasis);
                GameController.PlayingLogger.addLogFormat("{0} はサビに強くなった!", equip.Name);
            }
            else
            {
                GameController.PlayingLogger.addLogFormat("{0} はすでにサビに強い。", equip.Name);
            }
        }
    }
Пример #10
0
 public StringBoardMenu(MyCharacterController owener, int maxlength)
     : base(rowsize,columnsize,owener,pos, size, "StringBoardMenu")
 {
     CurrentText = new StringBuilder(maxlength);
     MaxLength = maxlength;
     BoardText = new WindowText[rowsize, columnsize];
     Vector2 textpos0 = Window.TextAreaPosition+Vector2.one*WindowConfigure.fontScale(1f);
     for (int r = 0; r < rowsize; r++) {
         Vector2 prevpos = textpos0 + new Vector2(0,r*ymargin);
         for (int c = 0; c < columnsize; c++) {
             float xmargin = c%5==0 ? WindowConfigure.fontScale(1.5f) : WindowConfigure.fontScale(1.2f);
             xmargin = c == 0 ? WindowConfigure.fontScale(0.5f) : xmargin;
             Vector2 textpos = prevpos + new Vector2(xmargin, 0);
             BoardText[r, c] = new WindowText( "", textpos);
             prevpos = textpos;
         }
     }
     //string[] table = createHiraKanaTable();
     setHirakanaTable();
     setSystemText();
     Window.MultiSelectMode = false;
     Vector2 dispsize = new Vector2(WindowConfigure.fontScale(maxlength +6), WindowConfigure.fontScale(1.5f));
     Vector2 disppos = new Vector2(Window.WindowPosition.x + (Window.WindowSize.x/2 - dispsize.x/2),(Window.WindowPosition.y - dispsize.y));
     InputDisplay = new ViewOnlyWindow(disppos, dispsize);
     WindowText prevtext = new WindowText("",InputDisplay.TextAreaPosition + new Vector2(WindowConfigure.fontScale(2f),-WindowConfigure.fontScale(0.3f)));
     InputDisplay.addWindowText(prevtext);
     SubWindows.Add(InputDisplay);
     Window.SkipText.Add("");
     Window.ReplaceText.Add(WhiteSpace,"");
 }
Пример #11
0
 public override void potionEffect(MyCharacterController user, MyCharacterController target)
 {
     PlayerController p = target as PlayerController;
     if (p != null) {
         p.Parameter.increaseExHP(BasisParameter.EffectPoint);
     }
 }
Пример #12
0
    public override bool hit(MyCharacterController src, GameObject target, Vector2 currentpos, bool penatrable, bool armorpiercing = false)
    {
        bool ret = false;
        //Debug.Log("TName: " + target.name+","+target.tag);
        if (TagList.isCharacterTag(target.tag) || TagList.isPlayerTag(target.tag))
        {
            MyCharacterController charctl = target.GetComponent<MyCharacterController>();
            GameController.PlayingLogger.hitObject(this.Name, charctl.Parameter.Name);
            if (!charctl.isDodge && !charctl.ParameterOffset.IsFlyingItemDodge)
            {
                if (this.IsCursed)
                {
                    hitEffectWhenCursed(src, target);
                }
                else
                {
                    hitEffect(src, target, currentpos, penatrable, armorpiercing);
                }
                //hitEffect(src, target, currentpos,penatrable,armorpiercing);
                ret = true;
            }
            else
            {
                //GameController.PlayingLogger.attackMiss();
            }

        }
        return ret;
    }
Пример #13
0
 public DamageTokenBasis(MyCharacterController attacker, MyCharacterController target)
 {
     Attacker = attacker;
     Target = target;
     AllowGainExp = true;
     ShowLogAction = showlog;
 }
 public override void turnStart(MyCharacterController user)
 {
     var p = user as PlayerController;
     if (p != null) {
         p.Parameter.WallPenatrableThrow = true;
     }
 }
 public static void disableCharacterEntity(MyCharacterController entity)
 {
     entity.setActive(false);
     GameController.GameActionEvent.despawnCharacter(entity);
     entity.Parameter = null;
     entity.Object = null;
 }
Пример #16
0
 public override bool startOperation(MyCharacterController speaker, MyCharacterController own)
 {
     Message.reset();
     Items = GameController.DungeonInformation.ListOfUnpaidCommodityWhichNotExistOnFiled.ToArray();
     initPaymentMenu(speaker as PlayerController);
     return true;
 }
Пример #17
0
 protected override void caneEffect(MyCharacterController user, ObjectEntity target)
 {
     var c = target as MyCharacterController;
     if (c != null) {
         GameController.FieldActionController.objectRandomWarp(c, user.InRoom);
     }
 }
 public override void actionEnd(MyCharacterController user)
 {
     base.actionEnd(user);
     if (GameController.Rnd.lottery(ExertionProbability)) {
         GameController.FieldActionController.objectRandomWarp(user);
     }
 }
Пример #19
0
 public ItemInventoryMenu(MyCharacterController owner)
     : this(owner, delegate { })
 {
     //init();
     SubmitAct = defaultAction;
     CancelAct = () => { };
 }
Пример #20
0
 protected override void caneEffect(MyCharacterController user, ObjectEntity target)
 {
     var c = target as MyCharacterController;
     if (c != null) {
         c.registerBuff(new Paralyze(c, BasisParameter.EffectPoint, StatusBuffBasis.CountDownType.TURN));
     }
 }
Пример #21
0
 public ExplosionDamage(MyCharacterController attacker, MyCharacterController target,FieldActionController.ExplisionLevel level, int damage)
     : base(attacker, target)
 {
     Level = level;
     Damage = damage;
     AllowGainExp = level == FieldActionController.ExplisionLevel.ONE;
 }
 public override void showUsedLog(MyCharacterController src, params ObjectEntity[] targets)
 {
     PlayerController player = src as PlayerController;
     if (player.Parameter.Shield != ShieldBasis.Dummy && player.Parameter.Shield != null)
     {
         if (success)
         {
             if (chance)
             {
                 GameController.PlayingLogger.addLogFormat("ラッキー!装備している盾がより強化された!", player.Parameter.Name);
             }
             else
             {
                 GameController.PlayingLogger.addLogFormat("{0} の装備している盾が強化された。", player.Parameter.Name);
             }
         }
         else
         {
             GameController.PlayingLogger.addLog("盾はこれ以上強化できないようだ。");
         }
     }
     else {
         GameController.PlayingLogger.addLogFormat("{0} は盾を装備していなかった。", player.Parameter.Name);
     }
 }
Пример #23
0
 protected override void caneEffect(MyCharacterController user, ObjectEntity target)
 {
     var c = target as MyCharacterController;
     if (c != null) {
         c.Parameter.levelDown(BasisParameter.EffectPoint);
     }
 }
Пример #24
0
 public DOTDamage(MyCharacterController target, int damage, bool isdeadly, CauseOfDeathBasis cod)
     : base(null, target)
 {
     Damage = damage;
     IsDeadly = isdeadly;
     COD = cod;
 }
 public override void doUse(MyCharacterController user, GameObject target)
 {
     //base.doUse(user, target);
     initMenu(user);
     initUnselectableItems();
     openMenu();
 }
Пример #26
0
 protected override void caneEffect(MyCharacterController user, ObjectEntity target)
 {
     Debug.logger.Log("Target", target.name);
     if (Array.Exists(BasisParameter.EffectAnimationTargetTags, t => t == target.tag) || target.tag == TagList.Wall) {
         GameController.FieldActionController.objectPullOn(target,user);
     }
 }
Пример #27
0
    void selectGoodEffect(MyCharacterController user)
    {
        int select = GameController.Rnd.Next(effectcount);
        switch (select) {
            case 0:
                user.Parameter.increaseMaxSTR(1, true);
                user.Parameter.increaseCurrentSTR(1, false);
                break;
            case 1:
                user.heal(user.Parameter.MaxHP);
                break;
            case 2:
                user.registerBuff(new InvalidatePoison(user));
                break;
            case 3:
                user.registerBuff(new InvalidateSleep(user));
                break;
            case 4:
                user.registerBuff(new InvalidateHunger(user));
                break;
            case 5:
                user.registerBuff(new AutoItemAppraise(user));
                break;
            case 6:
                user.registerBuff(new SneakWalk(user));
                break;

        }
    }
Пример #28
0
 public override void potionEffect(MyCharacterController user, MyCharacterController target)
 {
     var p = target as PlayerController;
     if (p != null) {
         p.Parameter.addMaxHunger(BasisParameter.EffectPoint);
     }
 }
Пример #29
0
 public void attackPtoE(MyCharacterController src, MyCharacterController target, int damage, bool isdead)
 {
     string str = "",str2="";
     str = string.Format("{0} は{1} へ{2}ポイントのダメージを与えた。", src.Parameter.Name,target.Parameter.Name, damage);
     if (isdead) str2 = string.Format("\n{0} は倒れた。",target.Parameter.Name);
     if (str.Length + str2.Length != 0) addLog(str+str2);
 }
Пример #30
0
 public ExertionItemEffect(MyCharacterController user,ItemBasis item ,bool throwhit,ObjectEntity[] targets,params ExeritionOption[] options)
     : base(user)
 {
     Targets = new List<ObjectEntity>(targets);
     Item = item;
     ThrowHit = throwhit;
     Options = options==null?new ExeritionOption[] { }:options;
 }
Пример #31
0
 public MyCharacterController GetOffBoat(string passenger_name)
 {
     for (int i = 0; i < passenger.Length; i++)
     {
         if (passenger [i] != null && passenger [i].getName() == passenger_name)
         {
             MyCharacterController charactorCtrl = passenger [i];
             passenger [i] = null;
             return(charactorCtrl);
         }
     }
     Debug.Log("Cant find passenger in boat: " + passenger_name);
     return(null);
 }
Пример #32
0
 public MyCharacterController getOffbank(string passenger_name)                      // 0->priest, 1->devil
 {
     for (int i = 0; i < passengerPlaner.Length; i++)
     {
         if (passengerPlaner [i] != null && passengerPlaner [i].getName() == passenger_name)
         {
             MyCharacterController charactorCtrl = passengerPlaner [i];
             passengerPlaner [i] = null;
             return(charactorCtrl);
         }
     }
     Debug.Log("cant find passenger on bank: " + passenger_name);
     return(null);
 }
Пример #33
0
 public MyCharacterController getOffCoast(string passengerName)      // 0->Priest, 1->Devil
 {
     for (int i = 0; i < passengerPlaner.Length; ++i)
     {
         if (passengerPlaner[i] != null && passengerPlaner[i].getName() == passengerName)
         {
             MyCharacterController characterCtrl = passengerPlaner[i];
             passengerPlaner[i] = null;
             return(characterCtrl);
         }
     }
     Debug.Log("Cannot find Passenger on coast: " + passengerName);
     return(null);
 }
    public void isClickChar(MyCharacterController tem_char)
    {
        if (Director.cn_move == 1)
        {
            return;
        }
        if (tem_char._isOnBoat())
        {
            CoastController tem_coast;
            if (boat.getTFflag() == -1)
            {
                tem_coast = toCoast;
            }
            else
            {
                tem_coast = fromCoast;
            }
            boat.getOffBoat(tem_char.getName());

            Vector3 end_pos    = tem_coast.getEmptyPosition();                                                     //动作分离版本改变
            Vector3 middle_pos = new Vector3(tem_char.getGameObject().transform.position.x, end_pos.y, end_pos.z); //动作分离版本改变
            actionManager.moveRole(tem_char.getGameObject(), middle_pos, end_pos, 50);                             //动作分离版本改变

            tem_char.getOnCoast(tem_coast);
            tem_coast.getOnCoast(tem_char);
        }
        else
        {
            CoastController tem_coast2 = tem_char.getCoastController();
            if (boat.getEmptyIndex() == -1)
            {
                return;
            }
            if (boat.getTFflag() != tem_coast2.getTFflag())
            {
                return;
            }
            tem_coast2.getOffCoast(tem_char.getName());

            Vector3 end_pos    = boat.getEmptyPosition();                                                          //动作分离版本改变
            Vector3 middle_pos = new Vector3(end_pos.x, tem_char.getGameObject().transform.position.y, end_pos.z); //动作分离版本改变
            actionManager.moveRole(tem_char.getGameObject(), middle_pos, end_pos, 50);                             //动作分离版本改变


            tem_char.getOnBoat(boat);
            boat.getOnBoat(tem_char);
        }
        //check whether game over;
        user.if_win_or_not = checkGameOver();
    }
    public void characterIsClicked(MyCharacterController characterCtrl)
    {
        if (ifGameover)
        {
            return;
        }
        if (characterCtrl.isOnBoat())
        {
            CoastController whichCoast;
            if (boat.get_to_or_from() == -1)                // to->-1; from->1
            {
                whichCoast = toCoast;
            }
            else
            {
                whichCoast = fromCoast;
            }

            boat.GetOffBoat(characterCtrl.getName());
            //characterCtrl.moveToPosition (whichCoast.getEmptyPosition ());

            actionManager.moveCharacter(characterCtrl.getGameObject(), whichCoast.getEmptyPosition());
            characterCtrl.getOnCoast(whichCoast);
            whichCoast.getOnCoast(characterCtrl);
        }
        else
        {
            CoastController whichCoast = characterCtrl.getCoastController();

            if (boat.getEmptyIndex() == -1)
            {
                return;
            }

            if (whichCoast.get_to_or_from() != boat.get_to_or_from())
            {
                return;
            }

            whichCoast.getOffCoast(characterCtrl.getName());
            //characterCtrl.moveToPosition (boat.getEmptyPosition());

            actionManager.moveCharacter(characterCtrl.getGameObject(), boat.getEmptyPosition());
            characterCtrl.getOnBoat(boat);
            boat.GetOnBoat(characterCtrl);
        }
        userGUI.status = check_game_over();
        ifGameover     = userGUI.status != 0 ? true : false;
    }
Пример #36
0
    public void characterIsClicked(MyCharacterController characterCtrl)
    {
        if (characterCtrl.isOnBoat())
        {
            CoastController whichCoast;
            if (boat.get_to_or_from() == -1)
            { // to->-1; from->1
                whichCoast = toCoast;
            }
            else
            {
                whichCoast = fromCoast;
            }

            boat.GetOffBoat(characterCtrl.getName());

            //characterCtrl.moveToPosition(whichCoast.getEmptyPosition());

            Vector3 end_pos    = whichCoast.getEmptyPosition();                                                      //修改部分
            Vector3 middle_pos = new Vector3(characterCtrl.getGameObj().transform.position.x, end_pos.y, end_pos.z); //修改部分
            myActionManager.moveRole(characterCtrl.getGameObj(), middle_pos, end_pos, myActionManager.roleSpeed);    //修改部分
            whichCoast.getOnCoast(characterCtrl);
            characterCtrl.getOnCoast(whichCoast);
        }
        else
        {                                   // character on coast
            CoastController whichCoast = characterCtrl.getCoastController();

            if (boat.getEmptyIndex() == -1)
            {       // boat is full
                return;
            }

            if (whichCoast.get_to_or_from() != boat.get_to_or_from())   // boat is not on the side of character
            {
                return;
            }

            Vector3 end_pos    = boat.getEmptyPosition();                                                            //修改部分
            Vector3 middle_pos = new Vector3(end_pos.x, characterCtrl.getGameObj().transform.position.y, end_pos.z); //修改部分
            myActionManager.moveRole(characterCtrl.getGameObj(), middle_pos, end_pos, myActionManager.boatSpeed);    //修改部分

            whichCoast.getOffCoast(characterCtrl.getName());
            //characterCtrl.moveToPosition(boat.getEmptyPosition());
            characterCtrl.getOnBoat(boat);
            boat.GetOnBoat(characterCtrl);
        }
        userGUI.status = judgment.check_game_over(boat, fromCoast, toCoast);
    }
 public void characterClick(MyCharacterController c)
 {
     if (userGui.state != GameState.NotWin)
     {
         return;
     }
     Debug.Log("!#");
     if (c.pos == CharacterPosition.From)
     {
         if (boat.getBoatPos() == BoatState.From && boat.getEmptyIndex() != -1)
         {
             var _pos = boat.getEmptyPosition();
             c.getOnBoat(boat.getGameobj(), _pos);
             fromCoast.removeCharacter(c);
             boat.GetOnBoat(c);
         }
     }
     else if (c.pos == CharacterPosition.To)
     {
         if (boat.getBoatPos() == BoatState.To && boat.getEmptyIndex() != -1)
         {
             var _pos = boat.getEmptyPosition();
             c.getOnBoat(boat.getGameobj(), _pos);
             toCoast.removeCharacter(c);
             boat.GetOnBoat(c);
         }
     }
     else
     {
         if (boat.getBoatPos() == BoatState.From)
         {
             var _pos = fromCoast.getEmptyPosition();
             c.getOnCoast(fromCoast.getGameobj(), _pos, CharacterPosition.From);
             fromCoast.addCharacter(c);
             boat.GetOffBoat(c);
         }
         else
         {
             var _pos = toCoast.getEmptyPosition();
             c.getOnCoast(toCoast.getGameobj(), _pos, CharacterPosition.To);
             toCoast.addCharacter(c);
             boat.GetOffBoat(c);
         }
     }
     if (toCoast.getEmptyIndex() == -1)
     {
         userGui.state = GameState.Win;
     }
 }
Пример #38
0
    public void characterClicked(MyCharacterController charController0)
    {
        Debug.Log("characterClicked");
        if (!GameOn)
        {
            Debug.Log("!GameOn");
            return;
        }

        if (charController0.whetherOnBoat())         //在船上,要去岸上
        {
            Debug.Log("在船上,要去岸上");
            if (boat.getBoatState() == 1)             //船在右侧
            {
                boat.getOffBoat(charController0);
                charController0.getOnCoast(rightCoast);
                actionManager.moveCharacter(charController0, charController0.getCoast().getEmptyPos());
                rightCoast.getOnCoast(charController0); //修改了岸上pos的状态
            }
            else                                        //船在左侧
                                                        //游戏角色要上左岸
            {
                boat.getOffBoat(charController0);
                charController0.getOnCoast(leftCoast);
                actionManager.moveCharacter(charController0, charController0.getCoast().getEmptyPos());
                leftCoast.getOnCoast(charController0);
            }
        }
        else          //在岸上,要去船上
        {
            Debug.Log("在岸上,要去船上");
            Debug.Log("boat" + boat.getBoatState());
            Debug.Log("coast" + charController0.getCoast().getType());
            if (boat.getBoatState() == 1 && charController0.getCoast().getType() == 1 || boat.getBoatState() == 0 && charController0.getCoast().getType() == 0)              //船在右侧且要从右岸上船
            {
                Vector3 emptyPos = boat.getEmptyPos();
                Debug.Log("if2");
                if (emptyPos != Vector3.zero)                 //判断船上是否有空位
                {
                    Debug.Log("if1");
                    charController0.getCoast().getOffCoast(charController0); //告诉岸:一个物体离开了你的怀抱,你多了一个空位
                    charController0.getOnBoat(boat);                         //告诉物体:上船(下岸)
                    actionManager.moveCharacter(charController0, emptyPos);
                    boat.getOnBoat(charController0);                         //告诉船:有人要上船啦
                }
            }
        }
        judge();
    }
Пример #39
0
	void Start ()
	{
		startTime = Time.time;
		if (characterController == null) {
			characterController = GetComponent<MyCharacterController> ();
			if (characterController == null) {
				throw new MissingComponentException ("MyCharacterController missing");
			}
		}
		BoxCollider2D boxCollider = GetComponent<BoxCollider2D> ();
		if (boxCollider != null) {
			objectSizeX = boxCollider.size.x;
			objectSizeY = boxCollider.size.y;
		}
	}
Пример #40
0
 //实现Useraction接口,人物被点击动作
 public void characterIsClicked(MyCharacterController characterCtrl)
 {
     //人物对象在船上,送上岸
     if (characterCtrl.isOnBoat())
     {
         CoastController whichCoast;
         if (boat.get_to_or_from() == -1)                // to->-1; from->1
         {
             whichCoast = toCoast;
         }
         else
         {
             whichCoast = fromCoast;
         }
         //将人物从船上抹去
         boat.GetOffBoat(characterCtrl.getName());
         //移动人物
         characterCtrl.moveToPosition(whichCoast.getEmptyPosition());
         //人物登陆
         characterCtrl.getOnCoast(whichCoast);
         //陆地控制器接收
         whichCoast.getOnCoast(characterCtrl);
     }
     else                    //人物在岸上								// character on coast
     {
         CoastController whichCoast = characterCtrl.getCoastController();
         //船满载
         if (boat.getEmptyIndex() == -1)                             // boat is full
         {
             return;
         }
         //点击船对面岸上的人无效
         if (whichCoast.get_to_or_from() != boat.get_to_or_from())                   // boat is not on the side of character
         {
             return;
         }
         //岸控制器释放
         whichCoast.getOffCoast(characterCtrl.getName());
         //人物移动
         characterCtrl.moveToPosition(boat.getEmptyPosition());
         //上船
         characterCtrl.getOnBoat(boat);
         //船控制器接收
         boat.GetOnBoat(characterCtrl);
     }
     //每次点击检查是否结束
     userGUI.status = check_game_over();
 }
Пример #41
0
    //====================================================================

    public void StartPlaying(string danceName)
    {
        ClearCharacters();

        _currentDance = danceName;

        _replayCharacter = Instantiate(_replayCharacterPrefab).GetComponent <MyCharacterController>();
        _replayCharacter.transform.position = _replayCharPos;

        _cubemanCharacter = Instantiate(_cubemanPrefab).GetComponent <CubemanController>();
        _cubemanCharacter.transform.position = _avatarCharPos;

        UIManager.Instance.SwitchState(UIManager.Instance.PlayUiState);

        Invoke("Play", 0.5f);
    }
Пример #42
0
    public void characterIsClicked(MyCharacterController character)    //移动角色
    {
        if (userGUI.status != 0)
        {
            return;
        }
        if (character.getis_onboat())
        {
            CoastController coast;
            if (!boat.get_is_left())
            {
                coast = rightCoast;
            }
            else
            {
                coast = leftCoast;
            }
            boat.GetOffBoat(character.getName());
            Vector3 end_pos    = coast.getEmptyPosition();
            Vector3 middle_pos = new Vector3(character.getGameObject().transform.position.x, end_pos.y, end_pos.z);
            actionManager.moveCharacterAction(character.getGameObject(), middle_pos, end_pos, speed);  //调用动作管理器中的移动角色函数,原先为调用moveable函数
            character.Oncoast(coast);
            coast.getOnCoast(character);
        }
        else
        {
            CoastController coast = character.getcoastController();
            // 船上已有两人
            if (boat.getEmptyIndex() == -1)
            {
                return;
            }
            // 船与角色并不在同一边岸
            if (coast.get_is_right() == boat.get_is_left())
            {
                return;
            }

            coast.getOffCoast(character.getName());
            Vector3 end_pos    = boat.getEmptyPos();
            Vector3 middle_pos = new Vector3(end_pos.x, character.getGameObject().transform.position.y, end_pos.z);
            actionManager.moveCharacterAction(character.getGameObject(), middle_pos, end_pos, character.speed);  //调用动作管理器中的移动角色函数,原先为调用moveable函数
            character.Onboat(boat);
            boat.GetOnBoat(character);
        }
        userGUI.status = check_game_over();
    }
Пример #43
0
    public Vector3 characterIsClicked(MyCharacterController cha)
    {
        Vector3 target = new Vector3();

        if (cha.onBoat())
        {
            CoastController coast;
            if (boat.isRight())
            {
                coast = right_coast;
            }
            else
            {
                coast = left_coast;
            }

            boat.getOffBoat(cha.getName());
            target = coast.getEmptyPosition(cha.isPriest());
            cha.moveToPosition(target);
            cha.getOnCoast(coast);
            coast.getOnCoast(cha);
        }
        else
        {
            CoastController coast = cha.getCoastController();

            // boat is full
            if (boat.isFull())
            {
                return(target);
            }

            if (coast.isRight() != boat.isRight())
            {
                return(target);
            }

            coast.getOffCoast(cha.getName());
            target = boat.getEmptyPosition();
            cha.moveToPosition(target);
            cha.getOnBoat(boat);
            boat.getOnBoat(cha);
        }
        user_gui.status = judge();
        return(target);
    }
Пример #44
0
    public playerInfo(MyCharacterController obj)
    {
        health = obj.health;
        GunController gunController = obj.GetComponentInChildren <GunController>();

        ammo   = new int[gunController.arsenal.Length];
        inArse = new bool[gunController.arsenal.Length];
        equip  = gunController.equipped_gun_index;
        for (int i = 0; i < ammo.Length; ++i)
        {
            ammo[i]   = gunController.arsenal[i].gun.ammo;
            inArse[i] = gunController.arsenal[i].is_in_arsenal;
        }
        crouched    = obj.GetCrouched();
        orientation = new eulerS(obj.my_camera.transform.eulerAngles.x, obj.transform.eulerAngles.y, 0);
        position    = new vector3S(obj.transform.position);
    }
Пример #45
0
    public void characterIsClicked(MyCharacterController characterCtrl)
    {
        if (characterCtrl.isOnBoat())
        {
            bankController whichbank;
            if (boat.get_to_or_from() == -1)
            {
                whichbank = tobank;
            }
            else
            {
                whichbank = frombank;
            }

            boat.GetOffBoat(characterCtrl.getName());

            Vector3 dest = whichbank.getEmptyPosition();
            actionManager.moveChar(characterCtrl, dest, speed);

            characterCtrl.getOnbank(whichbank);
            whichbank.getOnbank(characterCtrl);
        }
        else
        {
            bankController whichbank = characterCtrl.getbankController();

            if (boat.getEmptyIndex() == -1)
            {
                return;
            }

            if (whichbank.get_to_or_from() != boat.get_to_or_from())
            {
                return;
            }

            whichbank.getOffbank(characterCtrl.getName());

            Vector3 dest = boat.getEmptyPosition();
            actionManager.moveChar(characterCtrl, dest, speed);

            characterCtrl.getOnBoat(boat);
            boat.GetOnBoat(characterCtrl);
        }
        userGUI.status = check_game_over();
    }
    private void Awake()
    {
        #region singleton
        if (Instance == null)
        {
            Instance = this;
        }
        else if (Instance != this)
        {
            //Destroy(gameObject);
        }
        #endregion

        _animator      = GetComponent <Animator>();
        _cc            = FindObjectOfType <MyCharacterController>();
        _playerInputs  = FindObjectOfType <PlayerInputs>();
        _playerAbility = FindObjectOfType <PlayerAbility>();
    }
Пример #47
0
    public void IsClicked(MyCharacterController characterCtrl)
    {
        if (firstActionManager.Complete == SSActionEventType.Started)
        {
            return;
        }
        if (characterCtrl.IsOnBoat())
        {
            CoastController whichCoast;
            if (boat.getState() == -1)   // to->-1; from->1
            {
                whichCoast = toCoast;
            }
            else
            {
                whichCoast = fromCoast;
            }

            boat.GetOffBoat(characterCtrl.getName());
            firstActionManager.MoveCharacter(characterCtrl, whichCoast.getEmptyPosition());
            characterCtrl.getOnCoast(whichCoast);
            whichCoast.getOnCoast(characterCtrl);
        }
        else                                    // character on coast
        {
            CoastController whichCoast = characterCtrl.getCoastController();

            if (boat.getEmptyIndex() == -1)         // boat is full
            {
                return;
            }

            if (whichCoast.getState() != boat.getState())   // boat and character are on different side
            {
                return;
            }

            whichCoast.getOffCoast(characterCtrl.getName());
            firstActionManager.MoveCharacter(characterCtrl, boat.getEmptyPosition());
            characterCtrl.getOnBoat(boat);
            boat.GetOnBoat(characterCtrl);
        }
        userGUI.status = judge.check(fromCoast, toCoast, boat);
    }
Пример #48
0
        private void OnTriggerEnter(Collider other)
        {
            if (!isBeingTeleportedTo)
            {
                MyCharacterController cc = other.GetComponent <MyCharacterController>();
                if (cc)
                {
                    cc.Motor.SetPositionAndRotation(TeleportTo.transform.position, TeleportTo.transform.rotation);

                    if (OnCharacterTeleport != null)
                    {
                        OnCharacterTeleport(cc);
                    }
                    TeleportTo.isBeingTeleportedTo = true;
                }
            }

            isBeingTeleportedTo = false;
        }
 public void ObjectIsClicked(MyCharacterController tem_char)                 //
 {
     if (manager.Complete == SSActionEventType.started)
     {
         return;
     }
     if (tem_char.isOnBoat())
     {
         CoastController tem_coast;
         if (boat.getTFflag() == -1)
         {
             tem_coast = toCoast;
         }
         else
         {
             tem_coast = fromCoast;
         }
         boat.getOffBoat(tem_char.getName());
         //tem_char.moveToPosition (tem_coast.getEmptyPosition ());
         manager.CharacterMove(tem_char, tem_coast.getEmptyPosition());
         tem_char.getOnCoast(tem_coast);
         tem_coast.getOnCoast(tem_char);
     }
     else
     {
         CoastController tem_coast2 = tem_char.getCoastController();
         if (boat.getEmptyIndex() == -1)
         {
             return;
         }
         if (boat.getTFflag() != tem_coast2.getTFflag())
         {
             return;
         }
         tem_coast2.getOffCoast(tem_char.getName());
         //tem_char.moveToPosition (boat.getEmptyPosition ());
         manager.CharacterMove(tem_char, boat.getEmptyPosition());
         tem_char.getOnBoat(boat);
         boat.getOnBoat(tem_char);
     }
     //check whether game over;
     user.if_win_or_not = judge.Check();
 }
Пример #50
0
    public void characterIsClicked(MyCharacterController characterCtrl)
    {
        if (characterCtrl.isOnBoat())
        {
            CoastController whichCoast;
            if (boat.get_to_or_from() == -1)                // to->-1; from->1
            {
                whichCoast = toCoast;
            }
            else
            {
                whichCoast = fromCoast;
            }

            boat.GetOffBoat(characterCtrl.getName());
            //characterCtrl.moveToPosition (whichCoast.getEmptyPosition ());
            actionManager.moveCharacter(characterCtrl, whichCoast.getEmptyPosition());
            characterCtrl.getOnCoast(whichCoast);
            whichCoast.getOnCoast(characterCtrl);
        }
        else                                                                                    // character on coast
        {
            CoastController whichCoast = characterCtrl.getCoastController();

            if (boat.getEmptyIndex() == -1)                             // boat is full
            {
                return;
            }

            if (whichCoast.get_to_or_from() != boat.get_to_or_from())                   // boat is not on the side of character
            {
                return;
            }

            whichCoast.getOffCoast(characterCtrl.getName());
            //characterCtrl.moveToPosition (boat.getEmptyPosition());
            actionManager.moveCharacter(characterCtrl, boat.getEmptyPosition());
            characterCtrl.getOnBoat(boat);
            boat.GetOnBoat(characterCtrl);
        }
        userGUI.status = judger.check();
    }
    void SetCameraTarget(Transform t)
    {
        target = t;

        if (target != null)
        {
            if (target.GetComponent <MyCharacterController>())
            {
                charController = target.GetComponent <MyCharacterController>();
            }
            else
            {
                Debug.LogError("The camera's target needs a character controller");
            }
        }
        else
        {
            Debug.LogError("Yoour Camera needs a target");
        }
    }
Пример #52
0
    private void loadCharacter()
    {
        for (int i = 0; i < 3; i++)
        {
            MyCharacterController cha = new MyCharacterController("priest");
            cha.setName("priest" + i);
            cha.setPosition(fromCoast.getEmptyPosition());
            fromCoast.getOnCoast(cha);
            characters [i] = cha;
        }

        for (int i = 0; i < 3; i++)
        {
            MyCharacterController cha = new MyCharacterController("devil");
            cha.setName("devil" + i);
            cha.setPosition(fromCoast.getEmptyPosition());
            fromCoast.getOnCoast(cha);
            characters [i + 3] = cha;
        }
    }
Пример #53
0
 // Update is called once per frame
 private void LoadCharacters( )
 {
     for (int i = 0; i < 3; i++)
     {
         characters[i] = new MyCharacterController("Priest");
         characters[i].setName("Priest" + i);
         characters[i].setPos(rightCoast.getEmptyPos());
         rightCoast.getOnCoast(characters[i]);
         characters[i].getOnCoast(rightCoast);
     }
     for (int i = 3; i < 6; i++)
     {
         characters[i] = new MyCharacterController("Evil");
         characters[i].setName("Evil" + i);
         characters[i].setPos(rightCoast.getEmptyPos());
         rightCoast.getOnCoast(characters[i]);
         characters[i].getOnCoast(rightCoast);
     }
     Debug.Log("Load All Characters");
 }
Пример #54
0
    void Start()
    {
        cam = Camera.main;
#if UNITY_STANDALONE_WIN
        //这里的代码在IOS和Android平台都会编译
        if (lockCursor)
        {
            Cursor.lockState = CursorLockMode.Locked;
            Cursor.visible   = false;
        }
#endif


        controller = GetComponent <MyCharacterController>();

        yaw         = transform.eulerAngles.y;
        pitch       = cam.transform.localEulerAngles.x;
        smoothYaw   = yaw;
        smoothPitch = pitch;
    }
Пример #55
0
    public void characterIsClicked(MyCharacterController characterCtrl)
    {
        if (characterCtrl.getIsOnBoat())
        {
            CoastController whichCoast;
            if (boat.getStatus() == -1)                // to->-1; from->1
            {
                whichCoast = toCoast;
            }
            else
            {
                whichCoast = fromCoast;
            }

            boat.GetOffBoat(characterCtrl.getName());
            characterCtrl.moveToPosition(whichCoast.getEmptyPosition());
            characterCtrl.getOnCoast(whichCoast);
            whichCoast.getOnCoast(characterCtrl);
        }
        else                                                                                    // character on coast
        {
            CoastController whichCoast = characterCtrl.getCoastController();

            if (boat.getEmptyIndex() == -1)                             // boat is full
            {
                return;
            }

            if (whichCoast.getStatus() != boat.getStatus())                     // boat is not on the side of character
            {
                return;
            }

            whichCoast.getOffCoast(characterCtrl.getName());
            characterCtrl.moveToPosition(boat.getEmptyPosition());
            characterCtrl.getOnBoat(boat);
            boat.GetOnBoat(characterCtrl);
        }
        gameStatus     = check_game_over();
        userGUI.status = check_game_over();
    }
 public void isClickChar(MyCharacterController tem_char)
 {
     if (moveable.cn_move == 1)
     {
         return;
     }
     if (tem_char._isOnBoat())
     {
         CoastController tem_coast;
         if (boat.getTFflag() == -1)
         {
             tem_coast = toCoast;
         }
         else
         {
             tem_coast = fromCoast;
         }
         boat.getOffBoat(tem_char.getName());
         tem_char.moveToPosition(tem_coast.getEmptyPosition());
         tem_char.getOnCoast(tem_coast);
         tem_coast.getOnCoast(tem_char);
     }
     else
     {
         CoastController tem_coast2 = tem_char.getCoastController();
         if (boat.getEmptyIndex() == -1)
         {
             return;
         }
         if (boat.getTFflag() != tem_coast2.getTFflag())
         {
             return;
         }
         tem_coast2.getOffCoast(tem_char.getName());
         tem_char.moveToPosition(boat.getEmptyPosition());
         tem_char.getOnBoat(boat);
         boat.getOnBoat(tem_char);
     }
     //check whether game over;
     user.if_win_or_not = checkGameOver();
 }
Пример #57
0
        void Update()
        {
            _player = Globals.player.GetComponent <MyCharacterController>();

            if (Input.GetKeyDown(KeyCode.F1))
            {
                _realTimeLabel.Enabled = !_realTimeLabel.Enabled || !_gameTimeLabel.Enabled;
                _gameTimeLabel.Enabled = true;
            }

            if (Input.GetKeyDown(KeyCode.F2))
            {
                _gameTimeLabel.Toggle();
                _titleLabel.Enabled = false;
            }

            if (Input.GetKeyDown(KeyCode.F3))
            {
                _debugLabel.Toggle();
            }
        }
Пример #58
0
    public void moveCharacter(MyCharacterController character, Vector3 target)
    {
        Vector3 nowPos = character.getPos();
        Vector3 tmpPos = nowPos;

        if (target.y > nowPos.y)
        {
            tmpPos.y = target.y;
        }
        else
        {
            tmpPos.x = target.x;
        }
        SSAction action1        = MoveAction.getAction(tmpPos, character.speed);
        SSAction action2        = MoveAction.getAction(target, character.speed);
        SSAction sequenceAction = SequenceAction.getAction(1, 0, new List <SSAction> {
            action1, action2
        });

        this.addAction(character.getInstance(), sequenceAction, this);
    }
Пример #59
0
 public void characterIsClicked(MyCharacterController character)
 {
     //角色要上岸
     if (character.getis_onboat())
     {
         CoastController coast;
         if (!boat.get_is_left())
         {
             coast = rightCoast;
         }
         else
         {
             coast = leftCoast;
         }
         boat.GetOffBoat(character.getName());
         character.movePosition(coast.getEmptyPosition());
         character.Oncoast(coast);
         coast.getOnCoast(character);
     }
     // 角色要上船
     else
     {
         CoastController coast = character.getcoastController();
         // 船上已有两人
         if (boat.getEmptyIndex() == -1)
         {
             return;
         }
         // 船与角色并不在同一边岸
         if (coast.get_is_right() == boat.get_is_left())
         {
             return;
         }
         coast.getOffCoast(character.getName());
         character.movePosition(boat.getEmptyPos());
         character.Onboat(boat);
         boat.GetOnBoat(character);
     }
     userGUI.status = check_game_over();
 }
Пример #60
0
    public void characterIsClicked(MyCharacterController characterCtrl)
    {
        if (characterCtrl.isOnBoat())
        {
            bankController whichbank;
            if (boat.get_to_or_from() == -1)                // to->-1; from->1
            {
                whichbank = tobank;
            }
            else
            {
                whichbank = frombank;
            }

            boat.GetOffBoat(characterCtrl.getName());
            characterCtrl.moveToPosition(whichbank.getEmptyPosition());
            characterCtrl.getOnbank(whichbank);
            whichbank.getOnbank(characterCtrl);
        }
        else                                                                                    // character on bank
        {
            bankController whichbank = characterCtrl.getbankController();

            if (boat.getEmptyIndex() == -1)                             // boat is full
            {
                return;
            }

            if (whichbank.get_to_or_from() != boat.get_to_or_from())                    // boat is not on the side of character
            {
                return;
            }

            whichbank.getOffbank(characterCtrl.getName());
            characterCtrl.moveToPosition(boat.getEmptyPosition());
            characterCtrl.getOnBoat(boat);
            boat.GetOnBoat(characterCtrl);
        }
        userGUI.status = check_game_over();
    }