//砖块生成怪物 public void GenMonster(int monsterId) { NPC_Info = Cfg_NPC.GetCfg(monsterId); if (NPC_Info.AppearOnStart == 1) { SetBrickState(BrickState.monster); } monsterAttr = new MonsterAttr(); monsterAttr.GameEvent.OnMonsterAttrChanged += SetMonsterAttrShow; monsterAttr.GameEvent.OnMonsterDie += MonsterDie; MonsterAttr.TransToAttr(NPC_Info, ref monsterAttr); //设置怪物图片和颜色 string monsterAsset = COMMON.MonsterIconPath + NPC_Info.AssetName; COMMON.SetSprite(modelIcon, monsterAsset); modelIcon.material = COMMON.spriteMaterials[NPC_Info.Color]; }
/// <summary> /// 拾取道具,全部拾取完之后返回true /// </summary> /// <returns></returns> private bool PickUpItem() { PlayerDataChange.GetItem(equipList[0]); string tips = Cfg_Item.GetCfg(equipList[0]).ItemName; tips = COMMON.SetStrColor(tips, Cfg_Item.GetCfg(equipList[0]).Color); UIBase.Addtips("恭喜您获得" + tips + "!"); equipObjList[0].SetActive(false); equipList.RemoveAt(0); equipObjList.RemoveAt(0); if (equipObjList.Count == 0) { return(true); } equipObjList[0].SetActive(true); return(false); }
private static void GenBrickEquip(List <BrickRoot> bricks, List <int> dropList) { int brickNum = bricks.Count; for (int i = 0; i < bricks.Count; i++) { if (COMMON.RandomIsSuccess(dropList.Count, brickNum)) { bricks[i].GenEquip(dropList[0]); dropList.RemoveAt(0); bricks.RemoveAt(i); } brickNum -= 1; if (dropList.Count == 0) { break; } } }
private void GenEquipItem(List <int> equipList) { equipItem.SetActive(true); equipObjList = new List <GameObject>(); int index = 0; foreach (var i in equipList) { Cfg_Item cfg_Item = Cfg_Item.GetCfg(i); string AssetName = COMMON.ItemIconPath + cfg_Item.AssetName; GameObject equip = Instantiate(equipItem, equipItem.transform.parent); equipObjList.Add(equip); SpriteRenderer itemSprite = equip.GetComponent <SpriteRenderer>(); COMMON.SetSprite(itemSprite, AssetName); itemSprite.material = COMMON.spriteMaterials[cfg_Item.Color]; equip.SetActive(index == 0); index++; } equipItem.SetActive(false); }
/// <summary> /// 生成怪物 /// </summary> /// <param name="brickRoots">所有砖块列表</param> /// <param name="monsters">怪物ID列表</param> /// <returns></returns> private static List <BrickRoot> GenBrickMonster(List <BrickRoot> brickRoots, List <int> monsters) { //对砖块进行随机排序 List <BrickRoot> bricks = COMMON.RandomSortList(brickRoots); int brickNum = brickRoots.Count; for (int i = 0; i < bricks.Count; i++) { if (COMMON.RandomIsSuccess(monsters.Count, brickNum)) { bricks[i].GenMonster(monsters[0]); monsters.RemoveAt(0); bricks.RemoveAt(i); } brickNum -= 1; if (monsters.Count == 0) { break; } } return(bricks); }
/// <summary> /// 生成装备 /// </summary> /// <param name="dropId">掉落ID</param> public void GenEquip(int dropId) { Cfg_Drop cfg_Drop = Cfg_Drop.GetCfg(dropId); int maxDropNum = cfg_Drop.MaxDrop; int alreadyDrop = 0; double dropNum = 0; double dropPro; equipList = new List <int>(); for (int i = 0; i < 100; i++) { if (alreadyDrop >= maxDropNum) { break; } dropPro = cfg_Drop.DropPro / 10000; dropNum = Math.Floor(dropPro); for (int j = 0; j < dropNum; j++) { equipList.Add(cfg_Drop.DropItem); alreadyDrop += 1; } if (COMMON.RandomIsSuccess(cfg_Drop.DropPro % 10000, 10000)) { equipList.Add(cfg_Drop.DropItem); alreadyDrop += 1; } if (cfg_Drop.NextDrop != 0) { cfg_Drop = Cfg_Drop.GetCfg(cfg_Drop.NextDrop); } else { break; } } //生成道具物体 GenEquipItem(equipList); }
public bool Connect(string connectArgs = null) { try { COMMON.Init(); NumberOfSpectrometers = OceanOpticsWrapper.openAllSpectrometers(); Console.WriteLine("연결된 스펙트로미터 : " + NumberOfSpectrometers.ToString()); if (NumberOfVirtualSpectrometers > 0) { VirtualWaveLength = new double[NumberOfVirtualSpectrometers][]; VirtualIntensity = new double[NumberOfVirtualSpectrometers][]; Console.WriteLine("생성된 가상 스펙트로미터 : " + NumberOfVirtualSpectrometers.ToString()); } if (NumberOfSpectrometers == 0) { IsConnected = false; MessageBox.Show("Spectrometer가 연결이 되지 않았습니다"); return(false); } WaveLength = new double[NumberOfSpectrometers][]; Intensity = new double[NumberOfSpectrometers][]; IsConnected = true; return(IsConnected); } catch (Exception except) { COMMON.Log.Error("Spectrometer :: Connect " + except.ToString()); LastErrorMsg = "Connect Error " + except.ToString(); IsConnected = false; MessageBox.Show(except.ToString()); return(IsConnected); } }
private void SetChapterList() { foreach (var item in Cfg_Chapter.GetAllCfg()) { UI_ListItem = UIBase.InitListItem(ChapterListObj); UI_ListItem.Texts[0].text = item.Name; string Asset = COMMON.ChapterIconPath + item.Asset; UIBase.SetImageSpite(UI_ListItem.Images[0], Asset); if (!AlreadyPass.Contains(item.NeedMap)) { COMMON.SetImageGray(UI_ListItem.Images[0]); } UI_ListItem.btns[0].onClick.AddListener(delegate() { if (!AlreadyPass.Contains(item.NeedMap)) { UIBase.Addtips("请先通关上一章节!"); return; } OpenMapList(item.StartMap); MapList_ChapterName.text = item.Name; }); } }