577 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			577 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名:Equipment.nut
 | |
| 路径:User/Asset/Item/Equipment.nut
 | |
| 创建日期:2024-12-12	19:03
 | |
| 文件用途:
 | |
| */
 | |
| //装备信息标签类(信息类)
 | |
| if (!GameItem.rawin("EquipmentInfoTag")) GameItem.EquipmentInfoTag <- null;
 | |
| //装备图标窗口
 | |
| class GameItem.EquipmentIcon extends CL_CanvasObject {
 | |
| 
 | |
|     constructor(Equipment) {
 | |
|         base.constructor();
 | |
|         ResizeAndClear(32, 32);
 | |
|         BeginDraw();
 | |
|         //构造图标 及图标边框
 | |
|         if (Equipment.Icon) {
 | |
|             //图标
 | |
|             local Icon = CL_SpriteFrameObject(Equipment.Icon.path, Equipment.Icon.index);
 | |
|             DrawSpriteFrame(Icon, 0, 0);
 | |
| 
 | |
|             //是否封装
 | |
|             local IsPackage = Equipment.Property ? Equipment.Property.IsPackage : 1;
 | |
|             if (IsPackage && (Equipment.Rarity == 2 || Equipment.Rarity == 3)) {
 | |
|                 local IconFrame = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 634);
 | |
|                 IconFrame.SetMode(0);
 | |
|                 DrawSprite(IconFrame);
 | |
|             }
 | |
| 
 | |
|             //边框
 | |
|             local IconFrame = CL_SpriteFrameObject("sprite/item/iconmark.img", 62 + GameItem.EquipmentInfoTag.rarityframe_color_idx[Equipment.Rarity]);
 | |
|             DrawSpriteFrame(IconFrame, 0, 0);
 | |
|         }
 | |
|         EndDraw();
 | |
|     }
 | |
| }
 | |
| 
 | |
| //装备信息窗口
 | |
| class GameItem.EquipmentInfo extends Yosin_Window {
 | |
|     //装备
 | |
|     Equipment = null;
 | |
|     //画布
 | |
|     Canvas = null;
 | |
|     //画布实际高度
 | |
|     RealCanvasHeight = 0;
 | |
| 
 | |
|     constructor(Equipment) {
 | |
|         this.Equipment = Equipment.weakref();
 | |
|         base.constructor(clock() + "EquipmentInfo" + Equipment.Idx, 0, 0, 0, 0, 0);
 | |
| 
 | |
|         Init();
 | |
| 
 | |
|         local background = Yosin_NineBoxStretch(0, 0, 211, RealCanvasHeight + 10, "sprite/interface/lenheartwindowcommon.img", 213);
 | |
|         background.SetZOrder(-1);
 | |
|         Addchild(background);
 | |
|     }
 | |
| 
 | |
|     function Init() {
 | |
|         Canvas = CL_CanvasObject();
 | |
|         Canvas.ResizeAndClear(210, 600);
 | |
|         Canvas.SetFillBrush(sq_RGBA(59, 56, 57, 250));
 | |
|         Canvas.SetStrokeBrush(sq_RGBA(59, 56, 57, 250));
 | |
|         Canvas.BeginDraw();
 | |
| 
 | |
|         //构造图标 及图标边框
 | |
|         if (Equipment.Icon) {
 | |
|             local Icon = GameItem.EquipmentIcon(Equipment);
 | |
|             Canvas.DrawActor(Icon, 7, 7);
 | |
|         }
 | |
| 
 | |
|         //绘制装备名称
 | |
|         if (Equipment.Name.len() > 0) {
 | |
|             local EquName = FontAssetManager.GenerateNormal(Equipment.Name, false, {
 | |
|                 color = GameItem.EquipmentInfoTag.rarity_color[Equipment.Rarity]
 | |
|             });
 | |
|             Canvas.DrawActor(EquName, 41, 7);
 | |
|         }
 | |
| 
 | |
|         //绘制分割线
 | |
|         Canvas.DrawLine(3, 37, 207, 38);
 | |
| 
 | |
|         //绘制品级
 | |
|         local Percentage = Equipment.Property ? Equipment.Property.Percentage : 100;
 | |
|         //品级文字
 | |
|         local PercentageGradeText = FontAssetManager.GenerateNormal(GetPercentageText(Percentage), false, {
 | |
|             color = sq_RGBA(255, 240, 0, 255)
 | |
|         });
 | |
|         //百分比UI
 | |
|         local PercentageUI = CL_SpriteFrameObject("sprite/interface/lenheartwindowcommon.img", 633);
 | |
|         Canvas.DrawSpriteFrame(PercentageUI, 48, 49, PercentageUI.GetSize().w * (Percentage.tofloat() / 100.0));
 | |
|         local PercentageUIBG = CL_SpriteFrameObject("sprite/interface/lenheartwindowcommon.img", 632);
 | |
|         Canvas.DrawSpriteFrame(PercentageUIBG, 47, 48);
 | |
|         //百分比文字
 | |
|         local PercentageText = FontAssetManager.GenerateNormal(format("(%d%%)", Percentage), false, {
 | |
|             color = sq_RGBA(161, 131, 74, 255)
 | |
|         });
 | |
|         Canvas.DrawActor(PercentageGradeText, 6, 41);
 | |
|         Canvas.DrawActor(PercentageText, 130, 41);
 | |
|         //绘制稀有度名称
 | |
|         local RarityTagName = FontAssetManager.GenerateNormal(GameItem.EquipmentInfoTag.rarity_name_tag[Equipment.Rarity], false, {
 | |
|             color = GameItem.EquipmentInfoTag.rarity_color[Equipment.Rarity]
 | |
|         });
 | |
|         Canvas.DrawActor(RarityTagName, 210 - RarityTagName.GetSize().w - 6, 41);
 | |
| 
 | |
|         //绘制重量
 | |
|         local WeightText = FontAssetManager.GenerateNormal((Equipment.Weight.tofloat() / 1000.0) + "kg", false, {
 | |
|             color = sq_RGBA(161, 131, 74, 255)
 | |
|         });
 | |
|         Canvas.DrawActor(WeightText, 6, 57);
 | |
| 
 | |
|         //绘制最低多少级可以使用
 | |
|         local MinUseLevelText = FontAssetManager.GenerateNormal(Equipment.Minimum_level + "级以上可以使用", false, {
 | |
|             color = sq_RGBA(161, 131, 74, 255)
 | |
|         });
 | |
|         Canvas.DrawActor(MinUseLevelText, 210 - MinUseLevelText.GetSize().w - 6, 57);
 | |
| 
 | |
|         //绘制交易类型 如果有主体属性读取 否则一律为封装
 | |
|         local TradeType = Equipment.Property ? Equipment.Property.TradeType : 0;
 | |
|         local TradeTypeText = FontAssetManager.GenerateNormal(GameItem.EquipmentInfoTag.trade_type_text[TradeType], false, {
 | |
|             color = GameItem.EquipmentInfoTag.trade_type_color[TradeType]
 | |
|         });
 | |
|         Canvas.DrawActor(TradeTypeText, 210 - TradeTypeText.GetSize().w - 6, 73);
 | |
| 
 | |
|         //绘制装备类型
 | |
|         local GroupNameText = FontAssetManager.GenerateNormal(GameItem.EquipmentInfoTag.item_group_name_table[Equipment.GroupName], false, {
 | |
|             color = sq_RGBA(194, 161, 56, 255)
 | |
|         });
 | |
|         Canvas.DrawActor(GroupNameText, 210 - GroupNameText.GetSize().w - 6, 89);
 | |
| 
 | |
|         //绘制售价
 | |
|         local RealSellPrice = (Equipment.SellPrice == -1 ? (Equipment.Price == -1 ? 0 : Equipment.Price) : Equipment.SellPrice) / 5;
 | |
|         local SellPriceText = FontAssetManager.GenerateNormal(RealSellPrice + "金币", false, {
 | |
|             color = sq_RGBA(133, 121, 78, 255)
 | |
|         });
 | |
|         Canvas.DrawActor(SellPriceText, 210 - SellPriceText.GetSize().w - 6, 105);
 | |
| 
 | |
|         //绘制耐久度
 | |
|         local DurabilityText = FontAssetManager.GenerateNormal("耐久度 " + (Equipment.Property ? Equipment.Property.Durability : Equipment.Durability) + "/" + Equipment.Durability, false, {
 | |
|             color = sq_RGBA(133, 121, 80, 255)
 | |
|         });
 | |
|         Canvas.DrawActor(DurabilityText, 6, 121);
 | |
| 
 | |
|         //绘制分割线
 | |
|         Canvas.DrawLine(3, 139, 207, 139);
 | |
| 
 | |
|         //下面的绘制逻辑开始使用行put来做
 | |
|         RealCanvasHeight = 141;
 | |
| 
 | |
|         //绘制冒险家名望
 | |
|         local AdventurerFameFrame = CL_SpriteFrameObject("sprite/interface2/profile/profile_cn/profile_cn.img", 0);
 | |
|         Canvas.DrawSpriteFrame(AdventurerFameFrame, 6, RealCanvasHeight + 3);
 | |
|         local AdventurerFame = FontAssetManager.GenerateNormal("冒险家名望 " + Equipment.AdventurerFame, false, {
 | |
|             color = sq_RGBA(133, 121, 80, 255)
 | |
|         });
 | |
|         Canvas.DrawActor(AdventurerFame, 22, RealCanvasHeight);
 | |
| 
 | |
|         //绘制分割
 | |
|         AddSliceLine();
 | |
| 
 | |
|         //绘制物理攻击力
 | |
|         DrawAttack("EquipmentPhysicalAttack", "物理攻击力");
 | |
|         //绘制魔法攻击力
 | |
|         DrawAttack("EquipmentMagicalAttack", "魔法攻击力");
 | |
|         //绘制独立攻击力
 | |
|         DrawAttack("SeparateAttack", "独立攻击力");
 | |
|         //绘制四维
 | |
|         DrawAttribute("PhysicalAttack", "力量");
 | |
|         DrawAttribute("MagicalAttack", "智力");
 | |
|         DrawAttribute("PhysicalDefense", "体力");
 | |
|         DrawAttribute("MagicalDefense", "精神");
 | |
|         //绘制分割
 | |
|         Canvas.DrawLine(3, RealCanvasHeight + 3, 207, RealCanvasHeight + 3);
 | |
|         RealCanvasHeight += 6;
 | |
| 
 | |
|         //绘制三速
 | |
|         DrawSpeed("AttackSpeed", "攻击速度");
 | |
|         DrawSpeed("CastSpeed", "释放速度");
 | |
|         DrawSpeed("MoveSpeed", "移动速度");
 | |
| 
 | |
|         //绘制双爆
 | |
|         DrawCritical("PhysicalCriticalHit", "物理暴击率");
 | |
|         DrawCritical("MagicalCriticalHit", "魔法暴击率");
 | |
| 
 | |
|         //绘制命中率
 | |
|         DrawStuck("Stuck", "命中率");
 | |
| 
 | |
|         //绘制四属抗
 | |
|         DrawElement("DarkResistance", "暗属性抗性");
 | |
|         DrawElement("LightResistance", "光属性抗性");
 | |
|         DrawElement("FireResistance", "火属性抗性");
 | |
|         DrawElement("WaterResistance", "水属性抗性");
 | |
| 
 | |
|         //绘制四属强
 | |
|         DrawElement("DarkAttack", "暗属性强化");
 | |
|         DrawElement("LightAttack", "光属性强化");
 | |
|         DrawElement("FireAttack", "火属性强化");
 | |
|         DrawElement("WaterAttack", "水属性强化");
 | |
| 
 | |
|         //绘制属性攻击
 | |
|         if (Equipment.ElementalProperty) {
 | |
|             local Text = FontAssetManager.GenerateNormal(GameItem.EquipmentInfoTag.elemental_property_tag[Equipment.ElementalProperty], false, {
 | |
|                 color = sq_RGBA(215, 196, 147, 255)
 | |
|             });
 | |
|             Canvas.DrawActor(Text, 6, RealCanvasHeight);
 | |
|             AddHeight();
 | |
|         }
 | |
| 
 | |
| 
 | |
|         //绘制描述
 | |
|         if (Equipment.FlavorText) {
 | |
|             //绘制分割
 | |
|             Canvas.DrawLine(3, RealCanvasHeight + 3, 207, RealCanvasHeight + 3);
 | |
|             RealCanvasHeight += 6;
 | |
| 
 | |
|             local Text = FontAssetManager.GenerateNormal(Equipment.FlavorText, false, {
 | |
|                 color = sq_RGBA(133, 121, 80, 255),
 | |
|                 wrap_width = 204
 | |
|             });
 | |
|             Canvas.DrawActor(Text, 6, RealCanvasHeight);
 | |
|             RealCanvasHeight += Text.GetSize().h;
 | |
|         }
 | |
| 
 | |
|         Canvas.EndDraw();
 | |
|         Addchild(Canvas);
 | |
|     }
 | |
| 
 | |
|     //绘制属强属抗
 | |
|     function DrawElement(Type, TypeName) {
 | |
|         if (Equipment[Type] != 0) {
 | |
|             local AttackText = FontAssetManager.GenerateNormal(TypeName + " " + (Equipment[Type] >= 0 ? "+" : "-") + Equipment[Type], false, {
 | |
|                 color = sq_RGBA(215, 196, 147, 255)
 | |
|             });
 | |
|             Canvas.DrawActor(AttackText, 6, RealCanvasHeight);
 | |
|             AddHeight();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制命中
 | |
|     function DrawStuck(Type, TypeName) {
 | |
|         if (Equipment[Type] != 0) {
 | |
|             local Value = Equipment[Type];
 | |
|             local AttackText = FontAssetManager.GenerateNormal(TypeName + " " + (Value >= 0 ? "+" : "") + Value + "%", false, {
 | |
|                 color = sq_RGBA(215, 196, 147, 255)
 | |
|             });
 | |
|             Canvas.DrawActor(AttackText, 6, RealCanvasHeight);
 | |
|             AddHeight();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制双爆
 | |
|     function DrawCritical(Type, TypeName) {
 | |
|         if (Equipment[Type] != 0) {
 | |
|             local AttackText = FontAssetManager.GenerateNormal(TypeName + " " + (Equipment[Type] >= 0 ? "+" : "-") + Equipment[Type] + "%", false, {
 | |
|                 color = sq_RGBA(215, 196, 147, 255)
 | |
|             });
 | |
|             Canvas.DrawActor(AttackText, 6, RealCanvasHeight);
 | |
|             AddHeight();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制三速
 | |
|     function DrawSpeed(Type, TypeName) {
 | |
|         if (Equipment[Type] != 0) {
 | |
|             local Value = (Equipment[Type].tofloat() * 0.1).tointeger();
 | |
|             local AttackText = FontAssetManager.GenerateNormal(TypeName + " " + (Value >= 0 ? "+" : "-") + Value + "%", false, {
 | |
|                 color = sq_RGBA(215, 196, 147, 255)
 | |
|             });
 | |
|             Canvas.DrawActor(AttackText, 6, RealCanvasHeight);
 | |
|             AddHeight();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制四维
 | |
|     function DrawAttribute(Type, TypeName) {
 | |
|         if (Equipment[Type] != 0) {
 | |
|             local AttackText = FontAssetManager.GenerateNormal(TypeName + " " + Equipment[Type], false, {
 | |
|                 color = sq_RGBA(134, 120, 79, 255)
 | |
|             });
 | |
|             Canvas.DrawActor(AttackText, 6, RealCanvasHeight);
 | |
|             AddHeight();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //绘制三攻
 | |
|     function DrawAttack(Type, TypeName) {
 | |
|         if (Equipment[Type] != null) {
 | |
|             local RealValue;
 | |
|             //数组为没有百分比计算过的原始数据
 | |
|             if (typeof Equipment[Type] == "array") {
 | |
|                 local MaxValue = Equipment[Type][0];
 | |
|                 local MinValue = Equipment[Type][1];
 | |
|                 local Rate = Equipment.Property ? Equipment.Property[Type + "Rate"] : 100;
 | |
|                 Rate = Rate.tofloat() / 100.0;
 | |
|                 RealValue = (MinValue + ((MaxValue - MinValue).tofloat() * Rate).tointeger());
 | |
|             }
 | |
|             //百分比计算过的数据
 | |
|             else if (typeof Equipment[Type] == "integer") {
 | |
|                 RealValue = Equipment[Type];
 | |
|             }
 | |
|             local AttackText = FontAssetManager.GenerateNormal(TypeName + " " + RealValue, false, {
 | |
|                 color = sq_RGBA(134, 120, 79, 255)
 | |
|             });
 | |
|             Canvas.DrawActor(AttackText, 6, RealCanvasHeight);
 | |
|             AddHeight();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //增加行高
 | |
|     function AddHeight() {
 | |
|         RealCanvasHeight += 16;
 | |
|     }
 | |
|     //增加分割行
 | |
|     function AddSliceLine() {
 | |
|         RealCanvasHeight += 18;
 | |
|         Canvas.DrawLine(3, RealCanvasHeight, 207, RealCanvasHeight);
 | |
|         RealCanvasHeight += 2;
 | |
|     }
 | |
| 
 | |
|     // 根据数值获取对应的品级文字
 | |
|     function GetPercentageText(num) {
 | |
|         if (num< GameItem.EquipmentInfoTag.percentage_range_boundaries[0]) {
 | |
|             return GameItem.EquipmentInfoTag.percentage_text[0];
 | |
|         }
 | |
|         for (local i = 0; i< GameItem.EquipmentInfoTag.percentage_range_boundaries.len(); i++) {
 | |
|             if (num <= GameItem.EquipmentInfoTag.percentage_range_boundaries[i]) {
 | |
|                 return GameItem.EquipmentInfoTag.percentage_text[i + 1];
 | |
|             }
 | |
|         }
 | |
|         return GameItem.EquipmentInfoTag.percentage_text.top();
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // if (!getroottable().rawin("chongzaiflag")) {
 | |
| //     getroottable()["chongzaiflag"] <- true;
 | |
| // } else {
 | |
| //     //遍历窗口队列 如果可见则调用Show
 | |
| //     for (local i = 0; i< _SYS_WINDOW_LIST_.len(); i++) {
 | |
| //         local Window = _SYS_WINDOW_LIST_[i];
 | |
| //         Window.Visible = false;
 | |
| //         Window.RemoveSelf();
 | |
| //     }
 | |
| //     TestStage();
 | |
| // }
 | |
| 
 | |
| 
 | |
| 
 | |
| class GameItem.Equipment extends GameItem.Item {
 | |
|     //装备ID
 | |
|     Idx = -1;
 | |
|     //装备名称
 | |
|     Name = "";
 | |
|     //装备类型
 | |
|     Type = -1;
 | |
|     //装备槽位
 | |
|     SlotType = -1;
 | |
|     //装备可穿戴等级
 | |
|     Minimum_level = -1;
 | |
|     //装备等级组
 | |
|     Grade = null;
 | |
|     //装备稀有度
 | |
|     Rarity = 0;
 | |
|     //重量
 | |
|     Weight = 0;
 | |
|     //装备组名
 | |
|     GroupName = "null";
 | |
|     //购买价格
 | |
|     Price = -1;
 | |
|     //维修价格
 | |
|     RepairPrice = -1;
 | |
|     //出售价格
 | |
|     SellPrice = -1;
 | |
|     //耐久度
 | |
|     Durability = -1;
 | |
|     //冒险家名望
 | |
|     AdventurerFame = 0;
 | |
|     //装备可穿戴职业
 | |
|     Job = 0;
 | |
|     //装备图标
 | |
|     Icon = null;
 | |
|     //动画
 | |
|     Animation_Job = null;
 | |
|     //装备描述
 | |
|     Description = "";
 | |
|     //文件路径
 | |
|     DirPath = null;
 | |
|     //光环特效
 | |
|     Aurora_effects = null;
 | |
| 
 | |
|     //装备属性
 | |
|     Property = null;
 | |
| 
 | |
|     //力量
 | |
|     PhysicalAttack = 0;
 | |
|     //智力
 | |
|     MagicalAttack = 0;
 | |
|     //体力
 | |
|     PhysicalDefense = 0;
 | |
|     //精神
 | |
|     MagicalDefense = 0;
 | |
|     //所有属强
 | |
|     AllElementalAttack = 0;
 | |
|     //暗属强
 | |
|     DarkAttack = 0;
 | |
|     //光属强
 | |
|     LightAttack = 0;
 | |
|     //水属强
 | |
|     WaterAttack = 0;
 | |
|     //火属强
 | |
|     FireAttack = 0;
 | |
| 
 | |
|     //物理攻击力
 | |
|     EquipmentPhysicalAttack = 0;
 | |
|     //魔法攻击力
 | |
|     EquipmentMagicalAttack = 0;
 | |
|     //独立攻击力
 | |
|     SeparateAttack = 0;
 | |
| 
 | |
|     //攻击速度
 | |
|     AttackSpeed = 0;
 | |
|     //释放速度
 | |
|     CastSpeed = 0;
 | |
|     //移动速度
 | |
|     MoveSpeed = 0;
 | |
| 
 | |
|     //物理暴击率
 | |
|     PhysicalCriticalHit = 0;
 | |
|     //魔法暴击率
 | |
|     MagicalCriticalHit = 0;
 | |
|     //命中率
 | |
|     Stuck = 0;
 | |
| 
 | |
|     //暗属抗
 | |
|     DarkResistance = 0;
 | |
|     //光属抗
 | |
|     LightResistance = 0;
 | |
|     //水属抗
 | |
|     WaterResistance = 0;
 | |
|     //火属抗
 | |
|     FireResistance = 0;
 | |
| 
 | |
|     //属性攻击
 | |
|     ElementalProperty = null;
 | |
| 
 | |
|     //描述
 | |
|     FlavorText = null;
 | |
| 
 | |
|     constructor(...) {
 | |
|         //直接裸构造
 | |
|         if (vargv.len() == 0) {
 | |
| 
 | |
|         }
 | |
|         //通过参数构造
 | |
|         else if (vargv.len() == 1) {
 | |
|             //通过ID构造
 | |
|             if (typeof vargv[0] == "integer") {
 | |
|                 local EquInfo = AssetManager.GetEquipment(vargv[0]);
 | |
|                 if (EquInfo) {
 | |
|                     Idx = vargv[0];
 | |
|                     //名称
 | |
|                     if (EquInfo.rawin("name")) Name = EquInfo["name"];
 | |
|                     //类型
 | |
|                     if (EquInfo.rawin("type")) GetRealEquipmentType(EquInfo["type"].path);
 | |
|                     //最低使用等级
 | |
|                     if (EquInfo.rawin("minimum level")) Minimum_level = EquInfo["minimum level"];
 | |
|                     //等级组
 | |
|                     if (EquInfo.rawin("grade")) Grade = EquInfo["grade"];
 | |
|                     //稀有度
 | |
|                     if (EquInfo.rawin("rarity")) Rarity = EquInfo["rarity"];
 | |
|                     //重量
 | |
|                     if (EquInfo.rawin("weight")) Weight = EquInfo["weight"];
 | |
|                     //组名
 | |
|                     if (EquInfo.rawin("item group name")) GroupName = EquInfo["item group name"];
 | |
|                     //购买价格
 | |
|                     if (EquInfo.rawin("price")) Price = EquInfo["price"];
 | |
|                     //维修价格
 | |
|                     if (EquInfo.rawin("repair price")) RepairPrice = EquInfo["repair price"];
 | |
|                     //出售价格
 | |
|                     if (EquInfo.rawin("value")) SellPrice = EquInfo["value"];
 | |
|                     //耐久度
 | |
|                     if (EquInfo.rawin("durability")) Durability = EquInfo["durability"];
 | |
|                     //冒险家名望
 | |
|                     if (EquInfo.rawin("adventurerfame")) AdventurerFame = EquInfo["adventurerfame"];
 | |
|                     //职业
 | |
|                     if (EquInfo.rawin("usable_job")) Job = EquInfo["usable_job"];
 | |
|                     //图标
 | |
|                     if (EquInfo.rawin("icon")) Icon = EquInfo["icon"];
 | |
|                     if (EquInfo.rawin("Ani")) Animation_Job = EquInfo["Ani"];
 | |
|                     if (EquInfo.rawin("DirPath")) DirPath = EquInfo["DirPath"];
 | |
|                     if (EquInfo.rawin("aurora_effects")) Aurora_effects = EquInfo["aurora_effects"];
 | |
| 
 | |
|                     //四维
 | |
|                     if (EquInfo.rawin("physical attack")) PhysicalAttack = EquInfo["physical attack"];
 | |
|                     if (EquInfo.rawin("magical attack")) MagicalAttack = EquInfo["magical attack"];
 | |
|                     if (EquInfo.rawin("physical defense")) PhysicalDefense = EquInfo["physical defense"];
 | |
|                     if (EquInfo.rawin("magical defense")) MagicalDefense = EquInfo["magical defense"];
 | |
|                     //属强
 | |
|                     if (EquInfo.rawin("all elemental attack")) AllElementalAttack = EquInfo["all elemental attack"];
 | |
|                     if (EquInfo.rawin("dark attack")) DarkAttack = EquInfo["dark attack"];
 | |
|                     if (EquInfo.rawin("light attack")) LightAttack = EquInfo["light attack"];
 | |
|                     if (EquInfo.rawin("water attack")) WaterAttack = EquInfo["water attack"];
 | |
|                     if (EquInfo.rawin("fire attack")) FireAttack = EquInfo["fire attack"];
 | |
|                     //三攻
 | |
|                     if (EquInfo.rawin("equipment physical attack")) EquipmentPhysicalAttack = EquInfo["equipment physical attack"];
 | |
|                     if (EquInfo.rawin("equipment magical attack")) EquipmentMagicalAttack = EquInfo["equipment magical attack"];
 | |
|                     if (EquInfo.rawin("separate attack")) SeparateAttack = EquInfo["separate attack"];
 | |
|                     //三速
 | |
|                     if (EquInfo.rawin("attack speed")) AttackSpeed = EquInfo["attack speed"];
 | |
|                     if (EquInfo.rawin("cast speed")) CastSpeed = EquInfo["cast speed"];
 | |
|                     if (EquInfo.rawin("move speed")) MoveSpeed = EquInfo["move speed"];
 | |
|                     //双暴
 | |
|                     if (EquInfo.rawin("physical critical hit")) PhysicalCriticalHit = EquInfo["physical critical hit"];
 | |
|                     if (EquInfo.rawin("magical critical hit")) MagicalCriticalHit = EquInfo["magical critical hit"];
 | |
|                     //命中率
 | |
|                     if (EquInfo.rawin("stuck")) Stuck = -EquInfo["stuck"];
 | |
|                     //四属抗
 | |
|                     if (EquInfo.rawin("dark resistance")) DarkResistance = EquInfo["dark resistance"];
 | |
|                     if (EquInfo.rawin("light resistance")) LightResistance = EquInfo["light resistance"];
 | |
|                     if (EquInfo.rawin("water resistance")) WaterResistance = EquInfo["water resistance"];
 | |
|                     if (EquInfo.rawin("fire resistance")) FireResistance = EquInfo["fire resistance"];
 | |
|                     //属性攻击
 | |
|                     if (EquInfo.rawin("elemental property")) ElementalProperty = EquInfo["elemental property"];
 | |
|                     //描述
 | |
|                     if (EquInfo.rawin("flavor text")) FlavorText = EquInfo["flavor text"];
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //设置真实装备类型
 | |
|     function SetRealEquipmentType(AType, BType) {
 | |
|         SlotType = AType;
 | |
|         Type = BType;
 | |
|     }
 | |
|     //获取真实装备类型
 | |
|     function GetRealEquipmentType(EType) {
 | |
|         if (EType == "skin avatar") SetRealEquipmentType("skin", "avatar");
 | |
|         else if (EType == "weapon") SetRealEquipmentType("weapon", "equipment");
 | |
|         else if (EType == "hat avatar") SetRealEquipmentType("hat", "avatar");
 | |
|         else if (EType == "hair avatar") SetRealEquipmentType("hair", "avatar");
 | |
|         else if (EType == "coat avatar") SetRealEquipmentType("coat", "avatar");
 | |
|         else if (EType == "pants avatar") SetRealEquipmentType("pants", "avatar");
 | |
|         else if (EType == "waist avatar") SetRealEquipmentType("waist", "avatar");
 | |
|         else if (EType == "shoes avatar") SetRealEquipmentType("shoes", "avatar");
 | |
|         else if (EType == "breast avatar") SetRealEquipmentType("breast", "avatar");
 | |
|         else if (EType == "face avatar") SetRealEquipmentType("face", "avatar");
 | |
|         else if (EType == "aurora avatar") SetRealEquipmentType("aurora", "aurora");
 | |
|     }
 | |
| 
 | |
|     //获取装备信息窗口
 | |
|     function GetEquipmentInfoWindow() {
 | |
|         return GameItem.EquipmentInfo(this);
 | |
|     }
 | |
| 
 | |
|     //获取装备图标精灵
 | |
|     function GetEquipmentIconSprite() {
 | |
|         return GameItem.EquipmentIcon(this);
 | |
|     }
 | |
| 
 | |
|     //穿戴装备回调
 | |
|     function OnWearStart() {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     //穿戴时
 | |
|     function OnWearProc(Dt) {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     //卸载时
 | |
|     function OnWearEnd() {
 | |
| 
 | |
|     }
 | |
| 
 | |
| 
 | |
| } |