public static void GainSkill(SkillName name) { var skill = LearnedSkills.FirstOrDefault(x => x.Name == name); //新技能 if (skill == null) { skill = ActivedSkills.FirstOrDefault(x => x.Name == name).Clone(); SkillUpdater.NewSkill(skill); LearnedSkills.Add(skill); BattleUpdater.UpdateMessage("学会" + ((skill.RareDegree == SkillRareDegree.Rare) ? "稀有" : "") + "技能:" + skill.DisplayName); } else { if (skill.Level != 3) { skill.LevelUp(); SkillUpdater.UpgradeSkill(skill); BattleUpdater.UpdateMessage("技能 " + skill.DisplayName + " 提升至" + skill.Level.ToString() + "级"); } else { Hero.GetExp(15); BattleUpdater.UpdateMessage("技能已提升至满级,转化为15点经验值"); } } }
void InitButtonEvents() { #region 结束回合 Button btnEndTurn = GameObject.Find("SubCanvasBattling/BtnEndTurn").GetComponent <Button>(); btnEndTurn.onClick.AddListener(delegate() { BattleUpdater.UpdateMessage("战斗胜利!\n获得15经验值,15金币"); GameInfo.Money += 15; Hero.GetExp(15); Hero.RecoverHealth(-10); GameInfo.NewStage(); }); #endregion }
public static void GenerateHotelEvent(BaseEvent e) { e.Title = "荒原酒馆"; e.Description = "花费金币休息有可能得到意外的惊喜!"; e.Choose1Name = "驻足"; e.Choose2Name = "大吃一顿"; e.Choose3Name = "住宿休息"; e.Choose1Desc = "恢复最大生命值和魔法值的20%"; e.Choose2Desc = "花费50金币\n恢复最大生命值和魔法值的50%"; e.Choose3Desc = "花费100金币\n恢复所有生命值和魔法值"; e.Sprite = SpriteHelper.GetEventSprite(e.Type); e.Choose1 = () => { Hero.Health = Math.Min(Hero.MaxHealth, Hero.Health + Hero.MaxHealth * 0.2f); Hero.Mana = Math.Min(Hero.MaxMana, Hero.Mana + Hero.MaxMana * 0.2f); PropertyPanelUpdater.Update(); GameInfo.NewStage(); }; e.Choose2 = () => { if (GameInfo.Money < 50) { BattleUpdater.UpdateMessage("别逗我,你太穷了"); return; } GameInfo.Money -= 50; Hero.RecoverHealth(Hero.MaxHealth * 0.5f); Hero.RecoverMana(Hero.MaxMana * 0.5f); BattleUpdater.UpdateStageInfo(); GameInfo.NewStage(); }; e.Choose3 = () => { if (GameInfo.Money < 100) { BattleUpdater.UpdateMessage("别逗我,你太穷了"); return; } GameInfo.Money -= 100; Hero.RecoverHealth(Hero.MaxHealth); Hero.RecoverMana(Hero.MaxMana); BattleUpdater.UpdateStageInfo(); GameInfo.NewStage(); }; }
/// <summary> /// 开始一场新的对局 /// </summary> public static void NewGame() { CurrentScene = SceneType.BattleMain; EndType = GameEndType.None; ActivedProps = new List <BaseProp>(); GainedProps = new List <PropName>(); ActivedSkills = new List <BaseSkill>(); LearnedSkills = new List <BaseSkill>(); EventList = new List <BaseEvent>(); OccurredEvents = new List <BaseEvent>(); CurrentStageEvents = new List <BaseEvent>(); HeroRoleList = new List <BaseHeroRole>(); Day = 0; Money = 1200; //初始化照相机信息 CameraSetter.Init(); //初始化宝物信息 PropIniter.Init(); //初始化技能信息 SkillIniter.Init(Role); //初始化事件信息 EventIniter.Init(); //初始化怪物列表 MonsterIniter.Init(); //初始化职业信息 HeroRoleIniter.Init(); //初始化英雄属性 Hero.New(Role); Hero.Health = 40; Hero.Mana = 1; //更新英雄属性面板 PropertyPanelUpdater.Update(); //更新关卡信息面板 BattleUpdater.UpdateStageInfo(); BattleUpdater.UpdateMessage("欢迎来到荒原之城!"); BattleCanvasSetter.Scenes.Enqueue(BattleSceneType.ChooseEvent); BattleCanvasSetter.SwitchBattleScene(); NewStage(); }