public void WingEquip(int wingid, int action) { WingData wingData = PlayerDataPool.Instance.MainData.mWingData; WingItemData itemData = wingData.GetWingItemDataById(wingid); WingCommonTableItem commonRes = DataManager.WingCommonTable[wingid] as WingCommonTableItem; string modelName = WingModule.GetModelName(wingid, itemData.level); int wingeffectId = WingModule.GetEffectId(wingid, (int)itemData.level); if (action == 0) { RemoveAttach(AttachMountType.Wing); GameDebug.Log("装备翅膀"); ChangeAttach(AttachMountType.Wing, AssetConfig.WeaponPath + modelName, commonRes.modelSlot); if (wingeffectId != -1) { AddEffect((uint)wingeffectId, null, float.NaN, AttachMountType.Wing); } } else { GameDebug.Log("卸载翅膀"); RemoveAttach(AttachMountType.Wing); } }
public void OnWingSuccess() { AttachMent attachment = mAttachMents[(int)AttachMountType.Wing]; if (attachment == null) { return; } WingCommonTableItem commonRes = DataManager.WingCommonTable[mWingID] as WingCommonTableItem; if (commonRes == null) { return; } int effectid = WingModule.GetEffectId(mWingID, (int)mWingLv); if (effectid == -1) { return; } uint instid = ParticleUtility.AddEffect2MV(attachment.visual as MeshVisual, effectid, commonRes.modelSlot, SceneManager.Instance.GetCurScene().GetParticleManager()); ParticleItem pitem = SceneManager.Instance.GetCurScene().GetParticleManager().GetParticle(instid); if (pitem != null) { pitem.Layer = layermask; } }
public static Target LoadScopes(this Target target, WingModule module) { //var attributed = typeof(Target).Assembly.GetTypes() var targetType = Type.GetType(target.ClrType); var attributed = targetType.GetProperties() //.Where(prop => Attribute.IsDefined(prop, typeof(WingScopeAttribute))).ToList(); .Where(t => t.GetCustomAttributes <WingTargetElementAttribute>().Any()).ToList(); //var namespaced = attributed.Where(t => t.GetCustomAttribute<WingScopeAttribute>(). == module.GetType().Namespace || t.Namespace == typeof(Target).Namespace) // .ToList(); ////var namespaced = attributed.Where(t => t.Namespace == module.GetType().Namespace || t.Namespace == typeof(Target).Namespace) //// .ToList(); //var enums = namespaced.Where(t => t.IsEnum || (t.IsGenericType && t.GetGenericArguments().First().IsEnum)); var theScopes = attributed.Where(t => t.PropertyType.IsEnum || (t.PropertyType.IsGenericType && t.PropertyType.GetGenericArguments().First().IsEnum)) .Select(prop => new { Type = prop.PropertyType, Attribute = prop.PropertyType.GetGenericArguments().First().GetCustomAttributes <WingScopeAttribute>().FirstOrDefault() }) .ToList(); theScopes.ForEach(v => v.Attribute.CreateScope(target, v.Type.IsGenericType ? v.Type.GetGenericArguments().First() : v.Type)); return(target); }
public void SetupWing(int resid) { if (!DataManager.WingCommonTable.ContainsKey(resid)) { return; } WingCommonTableItem wingtable = DataManager.WingCommonTable[resid] as WingCommonTableItem; if (wingtable == null) { GameDebug.LogError("WingTable 没有找到 id = " + resid.ToString()); return; } if (resid != mResid) { if (mWing != null) { mWing.Destroy(); } mResid = resid; mWing = new MeshVisual(); WingItemData itemData = PlayerDataPool.Instance.MainData.mWingData.GetWingItemDataById(mResid); string modleName = WingModule.GetModelName(itemData.id, itemData.level); //mWing.CreateWithConfig(AssetConfig.WeaponPath + modleName, } }
public static Wing FactoryWing(this WingModule module) { var attr = module.GetType().GetCustomAttribute <WingModuleAttribute>(); if (attr == null) { throw new InvalidWingModuleException(string.Format("{0} does not have proper metadata attribute", module.Description)); } return(attr.FactoryWing()); }
private void Init() { mNeedInit = false; mWingMoudle = ModuleManager.Instance.FindModule <WingModule>(); for (int i = 1; i <= mWingMoudle.GetWingPageCount(); ++i) { CreateWingItem(i); } winggrid.GetComponent <UIGrid>().repositionNow = true; CurPageNum = 1; upDownAniHandler(); mIsDirty = true; }
public void ChangeWing(int wingid, uint winglv) { if (mWingID == wingid && mWingLv == winglv) { return; } mWingID = wingid; mWingLv = winglv; WingCommonTableItem commonRes = DataManager.WingCommonTable[wingid] as WingCommonTableItem; if (commonRes == null) { return; } string modelName = WingModule.GetModelName(wingid, winglv); MeshVisual visual = new MeshVisual(); visual.CreateWithConfig(AssetConfig.WeaponPath + modelName, null, null, false); ChangeAttach(AttachMountType.Wing, visual, commonRes.modelSlot); }
public static Wing LoadTargets(this Wing wing, WingModule module, ISession session = null) { //&& typeof(ContentPartRecord).IsAssignableFrom(t) var assy = module.GetType().Assembly; if (session == null) { assy.GetTypes() .Where(t => t.Namespace == module.GetType().Namespace&& t.GetCustomAttribute <WingTargetAttribute>() != null) .Select(t => new { Type = t, Attribute = t.GetCustomAttribute <WingTargetAttribute>() }) .ToList() .ForEach(v => v.Attribute .CreateTarget(wing, v.Attribute.Guid, v.Type, v.Attribute.IsTrendingEnabled, v.Attribute.DisplayOrder) .LoadElements(v.Type)); } else { var targetTypeAttributes = assy .GetTypes() .Where(t => t.GetCustomAttribute <WingTargetAttribute>() != null) .Select(t => new { Type = t, Attribute = t.GetCustomAttribute <WingTargetAttribute>() }) .ToList(); foreach (var attribute in targetTypeAttributes) { if (session.Query <Target>().Any(t1 => t1.Guid != attribute.Attribute.Guid)) { continue; } attribute.Attribute .CreateTarget(wing, attribute.Attribute.Guid, attribute.Type, attribute.Attribute.IsTrendingEnabled, attribute.Attribute.DisplayOrder) .LoadElements(attribute.Type); } } return(wing); }
private void OnWingUpdate(EventBase e) { WingModule module = ModuleManager.Instance.FindModule <WingModule>(); List <int> list = module.GetUnlockWing(); for (int i = 0; i < msMaxWingNum; ++i) { if (i < list.Count) { mWingObject[i].SetActive(true); WingCommonTableItem commonRes = DataManager.WingCommonTable[list[i]] as WingCommonTableItem; if (commonRes != null) { ItemTableItem itemRes = ItemManager.GetItemRes(commonRes.costId); if (itemRes != null) { UIAtlasHelper.SetSpriteImage(mWingIcon[i], itemRes.picname); uint wingLevel = module.GetWingLevel(list[i]); if (wingLevel > 0) { mWingLevel[i].gameObject.SetActive(true); mWingLevel[i].text = "Lv " + wingLevel; } else { mWingLevel[i].gameObject.SetActive(false); } } } } else { mWingObject[i].SetActive(false); UIAtlasHelper.SetSpriteImage(mWingIcon[i], null); } } }
public static Target LoadTarget(this WingModule module, Target target) { target.LoadScopes(module).ReconcileElementScopes(); return(target); }
private void UpdateUI() { mIsDirty = false; jinglianBtn.isEnabled = !mWingMoudle.IsFullLevel(); jinglianTxt.applyGradient = jinglianBtn.isEnabled; WingCommonTableItem mCommorRes; WingItemUI wing_item_ui = mWingItemUIList[CurPageNum - 1]; if (wing_item_ui == null) { GameDebug.LogError("获取wing_item_ui失败"); return; } IsTryOn = wing_item_ui.IsTryOn; State = mWingMoudle.GetWingState(CurPageNum); wing_item_ui.State = State; mCommorRes = mWingMoudle.GetCommonResByIndex(CurPageNum); //GameDebug.Log("state:"+State); wingName.text = mCommorRes.wingName; if (State == WingState.Locked) { int condition; bool isActive = mWingMoudle.CheckCondition(ref mCommorRes, out condition); wing_item_ui.SetDaChengPicVisable(Convert.ToInt32(condition)); WingDescriptText.text = mCommorRes.desc; jihuotiaojianTxt.text = StringHelper.GetString("wing_condition"); zhanValue.text = StringHelper.GetString("wing_no_active"); for (int i = 0; i < WingDefine.MaxConditonNum; ++i) { if ((condition & (1 << i)) == 0) //条件没有达成 { UIAtlasHelper.SetSpriteImage(mConditionUIList[i].biaoji1, "wing0:wing0-nocom", true); UIAtlasHelper.SetSpriteImage(mConditionUIList[i].num1, "wing0:wing0-019"); } else { UIAtlasHelper.SetSpriteImage(mConditionUIList[i].biaoji1, "wing0:wing0-003", true); UIAtlasHelper.SetSpriteImage(mConditionUIList[i].num1, "wing0:wing0-011"); } Type tp = mCommorRes.GetType(); int conditionId = Convert.ToInt32(tp.GetField(("condition" + (i + 1))).GetValue(mCommorRes)); ConditionTableItem cti = DataManager.ConditionTable[conditionId] as ConditionTableItem; if (cti != null) { mConditionUIList[i].content1.text = cti.mDesc; } } jihuoAni.gameObject.SetActive(isActive); equipWord.text = StringHelper.GetString("wing_equip"); UIAtlasHelper.SetButtonImage(equipBtn, "common:btn_yellow_4word"); tip.gameObject.SetActive(true); tip.text = StringHelper.GetString("wingtip").Replace("?", mCommorRes.middleLevel.ToString()); } else { WingItemData wing_item_data; WingLevelTableItem wing_level_res; if (!mWingMoudle.GetWingItemData(CurPageNum, out wing_item_data)) { return; } if (!mWingMoudle.GetWingLevelRes(wing_item_data.id, (int)wing_item_data.level, out wing_level_res)) { return; } levelnum.text = "LV" + wing_item_data.level; zhanValue.text = wing_level_res.battleScore.ToString(); jihuotiaojianTxt.text = StringHelper.GetString("wing_property"); if (wing_item_data.level < WingDefine.Max_Wing_Level) { string re = StringHelper.GetString("nextlevel") + ":"; var next_level_res = DataManager.WingLevelTable[wing_item_data.id * 1000 + wing_item_data.level + 1] as WingLevelTableItem; if (next_level_res != null) { nextLevel.text = re + GetPropString(next_level_res.propertyType, next_level_res.propertyNum); levelPercent.text = wing_item_data.process + "/" + next_level_res.costNum; levelProcessbar.value = (float)wing_item_data.process / (float)next_level_res.costNum; } } else { nextLevel.text = ""; levelPercent.text = "已满级"; levelProcessbar.value = 1; } buffDesc.text = wing_level_res.buffDesc; string picName = WingModule.GetWingPic(wing_item_data.id, (int)wing_item_data.level); if (picName != mWingItemUIList[CurPageNum - 1].mWingSprite.spriteName) { UIAtlasHelper.SetSpriteImage(mWingItemUIList[CurPageNum - 1].mWingSprite, picName); } for (int i = 0; i < WingDefine.PropertyNum; i++) { uint num = 0; uint totalnum = 0; switch (i) { case 0: num = wing_item_data.life; totalnum = wing_item_data.liftTotal; break; case 1: num = wing_item_data.attack; totalnum = wing_item_data.attackTotal; break; case 2: num = wing_item_data.defence; totalnum = wing_item_data.defenceTotal; break; case 3: num = wing_item_data.critical; totalnum = wing_item_data.criticalTotal; break; case 4: num = wing_item_data.power; totalnum = wing_item_data.powerTotal; break; } mProps[i].propname.text = GetPropString(i, num); mProps[i].propProcessBar.value = (float)num / (float)totalnum; if (mProps[i].propProcessBar.value.Equals(1)) { UIAtlasHelper.SetSpriteImage(mProps[i].foreGround, "common:process_short_fg1"); } else { UIAtlasHelper.SetSpriteImage(mProps[i].foreGround, "common:processbar_short_fg2"); } } UIAtlasHelper.SetSpriteImage(stuff, ItemManager.Instance.getItemBmp(mCommorRes.costId)); stuffname.text = ItemManager.Instance.getItemName(mCommorRes.costId); PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>(); stuffnum.text = pdm.GetItemNumByID(mCommorRes.costId).ToString(); if (State == WingState.Wear) { equipWord.text = StringHelper.GetString("wing_takeoff"); UIAtlasHelper.SetButtonImage(equipBtn, "common:btn_blue_4word"); } else { equipWord.text = StringHelper.GetString("wing_equip"); UIAtlasHelper.SetButtonImage(equipBtn, "common:btn_yellow_4word"); } int level = wing_item_data.level < mCommorRes.middleLevel ? mCommorRes.middleLevel : mCommorRes.hightLevel; tip.text = StringHelper.GetString("wingtip").Replace("?", level.ToString()); tip.gameObject.SetActive(wing_item_data.level < mCommorRes.middleLevel); } pageBar.CurPageNum = mWingMoudle.GetWingPageCount(); pageBar.LockPage = PlayerDataPool.Instance.MainData.mWingData.GetLockIndex(); }