if InvenSimulatorUI.class ~= "드루이드" then return end

function InvenSimulatorUI:InitStance()
	self:RegisterSideTab(1, nil, 5, "인간형", 9634, 768, self.db.talents["조화;달빛야수 변신"] and 24858 or nil, self.db.talents["회복;생명의 나무"] and 33891 or nil)
end

function InvenSimulatorUI:InitClassBuff()
	return 4, {
		"거친 황야 의복(4 피스 효과)", 37612, "전투력 160만큼 증가", function() return InvenSimulatorUI:GetSetItemPiece("거친 황야 의복") >= 4 end,
		"야생의 포효", 52610, "공격력 30%만큼 증가", function() return InvenSimulatorUI:HasStance("표범 변신") end,
		"맹공격", 50213, "공격력 80만큼 증가", function() return InvenSimulatorUI:HasStance("표범 변신") end,
		"생존 본능", 61336, "최대 생명력 30%만큼 증가", function() return InvenSimulatorCharDB.talents["야성;생존 본능"] and (InvenSimulatorUI:HasStance("광포한 곰 변신") or InvenSimulatorUI:HasStance("표범 변신")) end,
	}
end

function InvenSimulatorUI:ApplyTalent()
	if self:HasGlyphs("생존 본능의 문양") then
		self:UpdateClassBuffText("생존 본능", "최대 생명력 45%만큼 증가")
	else
		self:UpdateClassBuffText("생존 본능", "최대 생명력 30%만큼 증가")
	end
	if self:HasGlyphs("야생의 포효의 문양") then
		self:UpdateClassBuffText("야생의 포효", "공격력 33%만큼 증가")
	else
		self:UpdateClassBuffText("야생의 포효", "공격력 30%만큼 증가")
	end
	-- 원시의 정밀함(2) 숙련 5, 10 증가
	self:AddSpec("숙련", "원시의 정밀함", 5)
	-- 자연의 완전무결함(3) 주문극대 1, 2, 3%증가
	self:AddSpec("극대화율", "자연의 완전무결함", 1)
	-- 두꺼운가죽(3) 아이템 방어도 4, 7, 10% 증가
	if self.db.talents["야성;두꺼운 가죽"] == 1 then
		self:MultiSpec("아이템 방어도", 0.04)
	elseif self.db.talents["야성;두꺼운 가죽"] == 2 then
		self:MultiSpec("아이템 방어도", 0.07)
	elseif self.db.talents["야성;두꺼운 가죽"] == 3 then
		self:MultiSpec("아이템 방어도", 0.1)
	end
	-- 야생의 정수(5) 지능 4, 8, 12, 16, 20% 증가
	self:MultiSpec("지능", "야생의 정수", 0.04)
	-- 적자 생존(3) 모든 능력치 2, 4, 6% 증가
	self:MultiSpec("힘", "적자 생존", 0.02)
	self:MultiSpec("민첩성", "적자 생존", 0.02)
	self:MultiSpec("체력", "적자 생존", 0.02)
	self:MultiSpec("지능", "적자 생존", 0.02)
	self:MultiSpec("정신력", "적자 생존", 0.02)
	-- 야생의 징표 연마(2) 모든 능력치 1, 2%증가
	self:MultiSpec("힘", "야생의 징표 연마", 0.01)
	self:MultiSpec("민첩성", "야생의 징표 연마", 0.01)
	self:MultiSpec("체력", "야생의 징표 연마", 0.01)
	self:MultiSpec("지능", "야생의 징표 연마", 0.01)
	self:MultiSpec("정신력", "야생의 징표 연마", 0.01)
	-- 강렬한 영혼(3) 정신력, 5, 10, 15%증가
	self:MultiSpec("정신력", "강렬한 영혼", 0.05)
	-- 자연의 탐구자(5) 물리 공격력 2, 4, 6, 8, 10% 증가
	self:MultiSpec("물리 공격력 배율", "자연의 탐구자", 0.02)
	-- 야생의 포식자 특성에 의한 무기 순수 전투력 보정
	local weaponAP = 0
	if self:GetTalentPoint("야생의 포식자") > 0 and self.db.items[16] then
		local weapon = { ("\n"):split(select(2, LibStub("LibItemSpec-2.0"):ItemParser("player", 16, self.db.items[16])) or "") }
		for i = 1, #weapon do
			weaponAP = weaponAP + tonumber(weapon[i]:match("^전투력 ++(%d+)$") or 0)
		end
	end
	-- 변신
	if self:HasStance("광포한 곰 변신") then
		-- 변신에 의한 기본 무기 데미지 변경
		self.specTable["무기1 최소 공격력"] = 109.6
		self.specTable["무기1 최대 공격력"] = 164.5
		self.specTable["무기1 공격 속도"] = 2.5
		self.specTable["무기1 초당 공격력"] = nil
		-- 전투력 +240
		self:AddSpec("전투력", 240)
		-- 체력 +25%
		self:MultiSpec("체력", 0.25)
		-- 아이템 방어도 +370%
		self:MultiSpec("아이템 방어도", 3.7)
		-- 자연의 반응력(3) 회피율 2, 4, 6% 증가
		self:AddSpec("회피율", "자연의 반응력", 2)
		-- 야생의 기민함(2) 회피율 2, 4% 증가
		self:AddSpec("회피율", "야생의 기민함", 2)
		-- 날카로운 발톱(3) 치명타율 2, 4, 6% 증가
		self:AddSpec("치명타율", "날카로운 발톱", 2)
		-- 야생의 포식자(3) 전투력 레벨 * (0.5, 1, 1.5) 증가
		self:AddSpec("전투력", "야생의 포식자", 0.5 * self.level)
		-- 변신의 대가(2) 물리 공격력 2, 4% 증가
		self:MultiSpec("물리 공격력 배율", "변신의 대가", 0.02)
		-- 야생의 정수(5) 체력 2, 4, 6, 8, 10% 증가
		self:MultiSpec("체력", "야생의 정수", 0.02)
		-- 적자 생존(3) 아이템 방어도 11, 22, 33% 증가
		self:MultiSpec("아이템 방어도", "적자 생존", 0.11)
		-- 야생의 포식자(3) 무기 전투력 7, 14, 20%증가
		if self.db.talents["야성;야생의 포식자"] then
			self:AddSpec("전투력", -weaponAP)
			self:AddSpec("야생 전투력", weaponAP)
			self:MultiSpec("야생 전투력", self:GetTalentPoint("야생의 포식자") == 3 and 0.2 or (self:GetTalentPoint("야생의 포식자") * 0.07))
		end
		if self:GetSetItemPiece("말로른의 갑옷") >= 4 then
			self:AddSpec("방어도", 1400)
		end
	elseif self:HasStance("표범 변신") then
		-- 변신에 의한 기본 무기 데미지 변경
		self.specTable["무기1 최소 공격력"] = 44
		self.specTable["무기1 최대 공격력"] = 66
		self.specTable["무기1 공격 속도"] = 1
		self.specTable["무기1 초당 공격력"] = nil
		-- 전투력 +160
		self:AddSpec("전투력", 160)
		-- 변신의 대가(2) 치명타율 2, 4% 증가
		self:AddSpec("치명타율", "변신의 대가", 2)
		-- 야생의 포식자(3) 전투력 레벨 * (0.5, 1, 1.5) 증가
		self:AddSpec("전투력", "야생의 포식자", 0.5 * self.level)
		-- 야생의 기민함(2) 회피율 2, 4% 증가
		self:AddSpec("회피율", "야생의 기민함", 2)
		-- 날카로운 발톱(3) 치명타율 2, 4, 6% 증가
		self:AddSpec("치명타율", "날카로운 발톱", 2)
		-- 야생의 포식자(3) 무기 전투력 7, 14, 20%증가
		if self.db.talents["야성;야생의 포식자"] then
			self:AddSpec("전투력", -weaponAP)
			self:AddSpec("야생 전투력", weaponAP)
			self:MultiSpec("야생 전투력", self:GetTalentPoint("야생의 포식자") == 3 and 0.2 or (self:GetTalentPoint("야생의 포식자") * 0.07))
		end
		if self:GetSetItemPiece("말로른의 갑옷") >= 4 then
			self:AddSpec("힘", 30)
		end
	elseif self:HasStance("달빛야수 변신") then
		-- 아이템 방어도 +370%
		self:AddSpec("아이템 방어도", ceil(3.7 * floor(self.specTable["아이템 방어도"] or 0)))
		-- 광란(5) 지능 +2, 4, 6, 8, 10%
		self:MultiSpec("지능", "광란", 0.02)
		-- 야생의 포식자(3) 무기 전투력 7, 14, 20%증가
		if self.db.talents["야성;야생의 포식자"] then
			self:AddSpec("전투력", -weaponAP)
			self:AddSpec("야생 전투력", weaponAP)
			self:MultiSpec("야생 전투력", self:GetTalentPoint("야생의 포식자") == 3 and 0.2 or (self:GetTalentPoint("야생의 포식자") * 0.07))
		end
	elseif self:HasStance("생명의 나무") then
		-- 생명의 나무 연마(3) 아이템 방어도 67, 133, 200% 증가
		if self.db.talents["회복;생명의 나무 연마"] == 1 then
			self:AddSpec("아이템 방어도", ceil(0.67 * floor(self.specTable["아이템 방어도"] or 0)))
		elseif self.db.talents["회복;생명의 나무 연마"] == 2 then
			self:AddSpec("아이템 방어도", ceil(1.33 * floor(self.specTable["아이템 방어도"] or 0)))
		elseif self.db.talents["회복;생명의 나무 연마"] == 3 then
			self:AddSpec("아이템 방어도", ceil(2 * floor(self.specTable["아이템 방어도"] or 0)))
		end
	elseif self.db.talents["회복;나무 껍질 연마"] then
		self:AddSpec("아이템 방어도", ceil(self.db.talents["회복;나무 껍질 연마"] * 0.8 * floor(self.specTable["아이템 방어도"] or 0)))
	end
	-- 변신에 의한 오라(무리의 우두머리 및 달빛야수 오라) 토글
	if self.db.talents["야성;무리의 우두머리"] then
		if self:HasStance("광포한 곰 변신") or self:HasStance("표범 변신") then
			self:SetEnableBuff("무리의 우두머리", 0)
		else
			self:SetEnableBuff("무리의 우두머리", nil)
		end
	end
	if self.db.talents["조화;달빛야수 변신"] then
		local aura = self.db.talents["조화;달빛야수 변신 연마"] or 0
		if self:HasStance("달빛야수 변신") then
			if self.db.buffs["달빛야수 오라"] == nil or (self.db.buffs["달빛야수 오라"] and self.db.buffs["달빛야수 오라"] < aura) then
				self:SetEnableBuff("달빛야수 오라", aura)
			end
		elseif self.db.buffs["달빛야수 오라"] == aura then
			self:SetEnableBuff("달빛야수 오라", nil)
		end
	end
end

function InvenSimulatorUI:ApplyLastTalent()
	-- 격렬(3) 시전중에도 평소의 17, 33, 50% 마나 회복
	if self:GetTalentPoint("격렬") == 1 then
		self:AddSpec("시전 중 마나 회복량", self:GetManaRegenFromSpi() * 0.17)
	elseif self:GetTalentPoint("격렬") == 2 then
		self:AddSpec("시전 중 마나 회복량", self:GetManaRegenFromSpi() * 0.33)
	elseif self:GetTalentPoint("격렬") == 3 then
		self:AddSpec("시전 중 마나 회복량", self:GetManaRegenFromSpi() * 0.5)
	end
	-- 꿈결(3) 시전 중에도 지능의 4, 7, 10%의 마나 회복
	if self:GetTalentPoint("꿈결") == 1 then
		self:AddSpec("5초당 마나 회복량", self.specTable["지능"] * 0.04)
		self:AddSpec("시전 중 마나 회복량", self.specTable["지능"] * 0.04)
	elseif self:GetTalentPoint("꿈결") == 2 then
		self:AddSpec("5초당 마나 회복량", self.specTable["지능"] * 0.07)
		self:AddSpec("시전 중 마나 회복량", self.specTable["지능"] * 0.07)
	elseif self:GetTalentPoint("꿈결") == 3 then
		self:AddSpec("5초당 마나 회복량", self.specTable["지능"] * 0.1)
		self:AddSpec("시전 중 마나 회복량", self.specTable["지능"] * 0.1)
	end
	-- 회복의 본능(2) 주문 치유량이 민첩성의 35, 70% 만큼 증가
	self:AddSpec("주문 치유량", "회복의 본능", self.specTable["민첩성"] * 0.35)
	-- 달의 인도(3) 주문력이 전체 지능의 4, 8, 12 만큼 증가
	self:AddSpec("주문 공격력", "달의 인도", self.specTable["지능"] * 0.04)
	self:AddSpec("주문 치유량", "달의 인도", self.specTable["지능"] * 0.04)
	-- 전투력 + 야생 전투력
	if self:HasStance("광포한 곰 변신") then
		-- 전투력 = 전투력 + 야생 전투력
		self:AddSpec("전투력", self.specTable["야생 전투력"])
	elseif self:HasStance("표범 변신") then
		-- 전투력 = 전투력 + 야생 전투력 + 민첩성
		self:AddSpec("전투력", self.specTable["야생 전투력"])
		self:AddSpec("전투력", self.specTable["민첩성"] or 0)
	elseif self:HasStance("달빛야수 변신") then
		-- 전투력 = 전투력 + 야생 전투력
		self:AddSpec("전투력", self.specTable["야생 전투력"])
		-- 달빛야수 변신 연마(3) 정신력의 10, 20, 30%만큼 주문력 증가
		self:AddSpec("주문 공격력", "달빛야수 변신 연마", self.specTable["정신력"] * 0.1)
	elseif self:HasStance("생명의 나무") then
		-- 생명의 나무 연마(3) 주문 치유량이 정신력의 5, 10, 15%만큼 증가
		self:AddSpec("주문 치유량", "생명의 나무 연마", self.specTable["정신력"] * 0.05)
	end
end

function InvenSimulatorUI:ApplyLastMultiTalent()
	if self:HasStance("광포한 곰 변신") then
		-- 무리의 수호자(3) 곰 전투력 2, 4, 6%증가
		self:MultiSpec("전투력", "무리의 수호자", 0.02)
	elseif self:HasStance("표범 변신") then
		-- 야생의 정수(5) 전투력 2, 4, 6, 8, 10% 증가
		self:MultiSpec("전투력", "야생의 정수", 0.02)
	end
end