Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions internal/services/assets/weapons_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions internal/weapons/bow/rainbow/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package_name: rainbow
genshin_id: 15434
key: rainbowserpentbow
63 changes: 63 additions & 0 deletions internal/weapons/bow/rainbow/data_gen.textproto
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
id: 15434
key: "rainbowserpentbow"
rarity: 4
weapon_class: WEAPON_BOW
image_name: "UI_EquipIcon_Bow_ElegguaBow"
base_stats: {
base_props: {
prop_type: FIGHT_PROP_BASE_ATTACK
initial_value: 42.401
curve: GROW_CURVE_ATTACK_201
}
base_props: {
prop_type: FIGHT_PROP_CHARGE_EFFICIENCY
initial_value: 0.1
curve: GROW_CURVE_CRITICAL_201
}
promo_data: {
max_level: 20
}
promo_data: {
max_level: 40
add_props: {
prop_type: FIGHT_PROP_BASE_ATTACK
value: 25.9
}
}
promo_data: {
max_level: 50
add_props: {
prop_type: FIGHT_PROP_BASE_ATTACK
value: 51.9
}
}
promo_data: {
max_level: 60
add_props: {
prop_type: FIGHT_PROP_BASE_ATTACK
value: 77.8
}
}
promo_data: {
max_level: 70
add_props: {
prop_type: FIGHT_PROP_BASE_ATTACK
value: 103.7
}
}
promo_data: {
max_level: 80
add_props: {
prop_type: FIGHT_PROP_BASE_ATTACK
value: 129.7
}
}
promo_data: {
max_level: 90
add_props: {
prop_type: FIGHT_PROP_BASE_ATTACK
value: 155.6
}
}
}
name_text_hash_map: 2320082227
51 changes: 51 additions & 0 deletions internal/weapons/bow/rainbow/rainbow.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package rainbow

import (
"fmt"

"github.com/genshinsim/gcsim/pkg/core"
"github.com/genshinsim/gcsim/pkg/core/attributes"
"github.com/genshinsim/gcsim/pkg/core/event"
"github.com/genshinsim/gcsim/pkg/core/info"
"github.com/genshinsim/gcsim/pkg/core/keys"
"github.com/genshinsim/gcsim/pkg/core/player/character"
"github.com/genshinsim/gcsim/pkg/modifier"
)

func init() {
core.RegisterWeaponFunc(keys.RainbowSerpentBow, NewWeapon)
}

type Weapon struct {
Index int
}

func (w *Weapon) SetIndex(idx int) { w.Index = idx }
func (w *Weapon) Init() error { return nil }

func NewWeapon(c *core.Core, char *character.CharWrapper, p info.WeaponProfile) (info.Weapon, error) {
w := &Weapon{}
r := p.Refine

m := make([]float64, attributes.EndStatType)
m[attributes.ATKP] = 0.21 + float64(r)*0.07

c.Events.Subscribe(event.OnEnemyDamage, func(args ...any) {
atk := args[1].(*info.AttackEvent)
if atk.Info.ActorIndex != char.Index() {
return
}
if c.Player.Active() == char.Index() {
return
}
char.AddStatMod(character.StatMod{
Base: modifier.NewBaseWithHitlag("rainbow-serpent-bow", 60*8),
AffectedStat: attributes.ATKP,
Amount: func() []float64 {
return m
},
})
}, fmt.Sprintf("rainbow-serpent-bow-%v", char.Base.Key.String()))

return w, nil
}
25 changes: 25 additions & 0 deletions internal/weapons/bow/rainbow/rainbow_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions pkg/core/keys/weapon.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ var weaponNames = []string{
"prototypecrescent",
"prototyperancour",
"prototypestarglitter",
"rainbowserpentbow",
"rainslasher",
"rangegauge",
"ravenbow",
Expand Down Expand Up @@ -381,6 +382,7 @@ const (
PrototypeCrescent
PrototypeRancour
PrototypeStarglitter
RainbowSerpentBow
Rainslasher
RangeGauge
RavenBow
Expand Down
2 changes: 2 additions & 0 deletions pkg/shortcut/weapons.go
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,8 @@ var WeaponNameToKey = map[string]keys.Weapon{
"rancour": keys.PrototypeRancour,
"prototypestarglitter": keys.PrototypeStarglitter,
"starglitter": keys.PrototypeStarglitter,
"rainbowserpentbow": keys.RainbowSerpentBow,
"rainbowserpent": keys.RainbowSerpentBow,
"rainslasher": keys.Rainslasher,
"rangegauge": keys.RangeGauge,
"ravenbow": keys.RavenBow,
Expand Down
1 change: 1 addition & 0 deletions pkg/simulation/imports.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ import (
_ "github.com/genshinsim/gcsim/internal/weapons/bow/polarstar"
_ "github.com/genshinsim/gcsim/internal/weapons/bow/predator"
_ "github.com/genshinsim/gcsim/internal/weapons/bow/prototype"
_ "github.com/genshinsim/gcsim/internal/weapons/bow/rainbow"
_ "github.com/genshinsim/gcsim/internal/weapons/bow/rangegauge"
_ "github.com/genshinsim/gcsim/internal/weapons/bow/raven"
_ "github.com/genshinsim/gcsim/internal/weapons/bow/recurve"
Expand Down
30 changes: 30 additions & 0 deletions ui/packages/docs/docs/reference/weapons/rainbowserpentbow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: >
Rainbow Serpent's Rain Bow
---

import AoETable from "@site/src/components/AoE/AoETable";
import IssuesTable from "@site/src/components/Issues/IssuesTable";
import NamesList from "@site/src/components/Names/NamesList";
import ParamsTable from "@site/src/components/Params/ParamsTable";
import FieldsTable from "@site/src/components/Fields/FieldsTable";

## AoE Data

<AoETable item_key="rainbowserpentbow" data_src="weapon" />

## Known issues

<IssuesTable item_key="rainbowserpentbow" data_src="weapon" />

## Names

<NamesList item_key="rainbowserpentbow" data_src="weapon" />

## Params

<ParamsTable item_key="rainbowserpentbow" data_src="weapon" />

## Fields

<FieldsTable item_key="rainbowserpentbow" data_src="weapon" />
3 changes: 3 additions & 0 deletions ui/packages/docs/src/components/Names/weapon_data.json
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,9 @@
"prototypestarglitter": [
"starglitter"
],
"rainbowserpentbow": [
"rainbowserpent"
],
"rainslasher": [],
"rangegauge": [],
"ravenbow": [
Expand Down
7 changes: 7 additions & 0 deletions ui/packages/localization/src/locales/names.generated.json
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@
"prototypecrescent": "试作澹月",
"prototyperancour": "试作斩岩",
"prototypestarglitter": "试作星镰",
"rainbowserpentbow": "虹蛇的雨弦",
"rainslasher": "雨裁",
"rangegauge": "测距规",
"ravenbow": "鸦羽弓",
Expand Down Expand Up @@ -1039,6 +1040,7 @@
"prototypecrescent": "Prototype Crescent",
"prototyperancour": "Prototype Rancour",
"prototypestarglitter": "Prototype Starglitter",
"rainbowserpentbow": "Rainbow Serpent's Rain Bow",
"rainslasher": "Rainslasher",
"rangegauge": "Range Gauge",
"ravenbow": "Raven Bow",
Expand Down Expand Up @@ -1835,6 +1837,7 @@
"prototypecrescent": "Mondschein-Prototyp",
"prototyperancour": "Steinschneider-Prototyp",
"prototypestarglitter": "Sternsichel-Prototyp",
"rainbowserpentbow": "Regenakkorde der Regenbogenschlange",
"rainslasher": "Regenschnitter",
"rangegauge": "Entfernungsmesser",
"ravenbow": "Rabenbogen",
Expand Down Expand Up @@ -2631,6 +2634,7 @@
"prototypecrescent": "澹月·試作",
"prototyperancour": "斬岩·試作",
"prototypestarglitter": "星鎌·試作",
"rainbowserpentbow": "虹蛇の雨弦",
"rainslasher": "雨裁",
"rangegauge": "レンジゲージ",
"ravenbow": "鴉羽の弓",
Expand Down Expand Up @@ -3427,6 +3431,7 @@
"prototypecrescent": "담월 프로토타입",
"prototyperancour": "참암 프로토타입",
"prototypestarglitter": "별의 낫 프로토타입",
"rainbowserpentbow": "무지개뱀의 현",
"rainslasher": "빗물 베기",
"rangegauge": "거리 측정기",
"ravenbow": "까마귀깃 활",
Expand Down Expand Up @@ -4223,6 +4228,7 @@
"prototypecrescent": "Прототип: Полумесяц",
"prototyperancour": "Прототип: Злоба",
"prototypestarglitter": "Прототип: Звёздный блеск",
"rainbowserpentbow": "Струны дождя радужного змея",
"rainslasher": "Дождерез",
"rangegauge": "Дальномер",
"ravenbow": "Лук ворона",
Expand Down Expand Up @@ -5019,6 +5025,7 @@
"prototypecrescent": "Prototipo Luz de Luna",
"prototyperancour": "Prototipo Rencor",
"prototypestarglitter": "Prototipo Estelar",
"rainbowserpentbow": "Pluvioarco de la Serpiente Arcoíris",
"rainslasher": "Segadora de la Lluvia",
"rangegauge": "Medidor Telemétrico",
"ravenbow": "Arco de Cuervo",
Expand Down
8 changes: 8 additions & 0 deletions ui/packages/ui/src/Data/weapon_data.generated.json
Original file line number Diff line number Diff line change
Expand Up @@ -1024,6 +1024,14 @@
"image_name": "UI_EquipIcon_Pole_Proto",
"name_text_hash_map ": "1154009435"
},
"rainbowserpentbow": {
"id": 15434,
"key": "rainbowserpentbow",
"rarity": 4,
"weapon_class": "WEAPON_BOW",
"image_name": "UI_EquipIcon_Bow_ElegguaBow",
"name_text_hash_map ": "2320082227"
},
"rainslasher": {
"id": 12405,
"key": "rainslasher",
Expand Down