- ItemStats, CombatStats, EquipmentItem을 freezed로 마이그레이션 - copyWith, toJson/fromJson 자동 생성 - 세이브 파일 호환성 유지
734 lines
21 KiB
Dart
734 lines
21 KiB
Dart
// coverage:ignore-file
|
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
|
// ignore_for_file: type=lint
|
|
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
|
|
|
|
part of 'combat_stats.dart';
|
|
|
|
// **************************************************************************
|
|
// FreezedGenerator
|
|
// **************************************************************************
|
|
|
|
T _$identity<T>(T value) => value;
|
|
|
|
final _privateConstructorUsedError = UnsupportedError(
|
|
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models',
|
|
);
|
|
|
|
CombatStats _$CombatStatsFromJson(Map<String, dynamic> json) {
|
|
return _CombatStats.fromJson(json);
|
|
}
|
|
|
|
/// @nodoc
|
|
mixin _$CombatStats {
|
|
// 기본 스탯
|
|
/// 힘: 물리 공격력 보정
|
|
int get str => throw _privateConstructorUsedError;
|
|
|
|
/// 체력: HP, 방어력 보정
|
|
int get con => throw _privateConstructorUsedError;
|
|
|
|
/// 민첩: 회피율, 크리티컬율, 명중률, 공격 속도
|
|
int get dex => throw _privateConstructorUsedError;
|
|
|
|
/// 지능: 마법 공격력, MP
|
|
int get intelligence => throw _privateConstructorUsedError;
|
|
|
|
/// 지혜: 마법 방어력, MP 회복
|
|
int get wis => throw _privateConstructorUsedError;
|
|
|
|
/// 매력: 상점 가격, 드롭률 보정
|
|
int get cha => throw _privateConstructorUsedError; // 파생 스탯 (전투용)
|
|
/// 물리 공격력
|
|
int get atk => throw _privateConstructorUsedError;
|
|
|
|
/// 물리 방어력
|
|
int get def => throw _privateConstructorUsedError;
|
|
|
|
/// 마법 공격력
|
|
int get magAtk => throw _privateConstructorUsedError;
|
|
|
|
/// 마법 방어력
|
|
int get magDef => throw _privateConstructorUsedError;
|
|
|
|
/// 크리티컬 확률 (0.0 ~ 1.0)
|
|
double get criRate => throw _privateConstructorUsedError;
|
|
|
|
/// 크리티컬 데미지 배율 (1.5 ~ 3.0)
|
|
double get criDamage => throw _privateConstructorUsedError;
|
|
|
|
/// 회피율 (0.0 ~ 0.5)
|
|
double get evasion => throw _privateConstructorUsedError;
|
|
|
|
/// 명중률 (0.8 ~ 1.0)
|
|
double get accuracy => throw _privateConstructorUsedError;
|
|
|
|
/// 방패 방어율 (0.0 ~ 0.4)
|
|
double get blockRate => throw _privateConstructorUsedError;
|
|
|
|
/// 무기로 쳐내기 확률 (0.0 ~ 0.3)
|
|
double get parryRate => throw _privateConstructorUsedError;
|
|
|
|
/// 공격 딜레이 (밀리초)
|
|
int get attackDelayMs => throw _privateConstructorUsedError; // 자원
|
|
/// 최대 HP
|
|
int get hpMax => throw _privateConstructorUsedError;
|
|
|
|
/// 현재 HP
|
|
int get hpCurrent => throw _privateConstructorUsedError;
|
|
|
|
/// 최대 MP
|
|
int get mpMax => throw _privateConstructorUsedError;
|
|
|
|
/// 현재 MP
|
|
int get mpCurrent => throw _privateConstructorUsedError;
|
|
|
|
/// Serializes this CombatStats to a JSON map.
|
|
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
|
|
|
/// Create a copy of CombatStats
|
|
/// with the given fields replaced by the non-null parameter values.
|
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
$CombatStatsCopyWith<CombatStats> get copyWith =>
|
|
throw _privateConstructorUsedError;
|
|
}
|
|
|
|
/// @nodoc
|
|
abstract class $CombatStatsCopyWith<$Res> {
|
|
factory $CombatStatsCopyWith(
|
|
CombatStats value,
|
|
$Res Function(CombatStats) then,
|
|
) = _$CombatStatsCopyWithImpl<$Res, CombatStats>;
|
|
@useResult
|
|
$Res call({
|
|
int str,
|
|
int con,
|
|
int dex,
|
|
int intelligence,
|
|
int wis,
|
|
int cha,
|
|
int atk,
|
|
int def,
|
|
int magAtk,
|
|
int magDef,
|
|
double criRate,
|
|
double criDamage,
|
|
double evasion,
|
|
double accuracy,
|
|
double blockRate,
|
|
double parryRate,
|
|
int attackDelayMs,
|
|
int hpMax,
|
|
int hpCurrent,
|
|
int mpMax,
|
|
int mpCurrent,
|
|
});
|
|
}
|
|
|
|
/// @nodoc
|
|
class _$CombatStatsCopyWithImpl<$Res, $Val extends CombatStats>
|
|
implements $CombatStatsCopyWith<$Res> {
|
|
_$CombatStatsCopyWithImpl(this._value, this._then);
|
|
|
|
// ignore: unused_field
|
|
final $Val _value;
|
|
// ignore: unused_field
|
|
final $Res Function($Val) _then;
|
|
|
|
/// Create a copy of CombatStats
|
|
/// with the given fields replaced by the non-null parameter values.
|
|
@pragma('vm:prefer-inline')
|
|
@override
|
|
$Res call({
|
|
Object? str = null,
|
|
Object? con = null,
|
|
Object? dex = null,
|
|
Object? intelligence = null,
|
|
Object? wis = null,
|
|
Object? cha = null,
|
|
Object? atk = null,
|
|
Object? def = null,
|
|
Object? magAtk = null,
|
|
Object? magDef = null,
|
|
Object? criRate = null,
|
|
Object? criDamage = null,
|
|
Object? evasion = null,
|
|
Object? accuracy = null,
|
|
Object? blockRate = null,
|
|
Object? parryRate = null,
|
|
Object? attackDelayMs = null,
|
|
Object? hpMax = null,
|
|
Object? hpCurrent = null,
|
|
Object? mpMax = null,
|
|
Object? mpCurrent = null,
|
|
}) {
|
|
return _then(
|
|
_value.copyWith(
|
|
str: null == str
|
|
? _value.str
|
|
: str // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
con: null == con
|
|
? _value.con
|
|
: con // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
dex: null == dex
|
|
? _value.dex
|
|
: dex // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
intelligence: null == intelligence
|
|
? _value.intelligence
|
|
: intelligence // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
wis: null == wis
|
|
? _value.wis
|
|
: wis // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
cha: null == cha
|
|
? _value.cha
|
|
: cha // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
atk: null == atk
|
|
? _value.atk
|
|
: atk // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
def: null == def
|
|
? _value.def
|
|
: def // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
magAtk: null == magAtk
|
|
? _value.magAtk
|
|
: magAtk // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
magDef: null == magDef
|
|
? _value.magDef
|
|
: magDef // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
criRate: null == criRate
|
|
? _value.criRate
|
|
: criRate // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
criDamage: null == criDamage
|
|
? _value.criDamage
|
|
: criDamage // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
evasion: null == evasion
|
|
? _value.evasion
|
|
: evasion // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
accuracy: null == accuracy
|
|
? _value.accuracy
|
|
: accuracy // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
blockRate: null == blockRate
|
|
? _value.blockRate
|
|
: blockRate // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
parryRate: null == parryRate
|
|
? _value.parryRate
|
|
: parryRate // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
attackDelayMs: null == attackDelayMs
|
|
? _value.attackDelayMs
|
|
: attackDelayMs // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
hpMax: null == hpMax
|
|
? _value.hpMax
|
|
: hpMax // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
hpCurrent: null == hpCurrent
|
|
? _value.hpCurrent
|
|
: hpCurrent // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
mpMax: null == mpMax
|
|
? _value.mpMax
|
|
: mpMax // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
mpCurrent: null == mpCurrent
|
|
? _value.mpCurrent
|
|
: mpCurrent // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
)
|
|
as $Val,
|
|
);
|
|
}
|
|
}
|
|
|
|
/// @nodoc
|
|
abstract class _$$CombatStatsImplCopyWith<$Res>
|
|
implements $CombatStatsCopyWith<$Res> {
|
|
factory _$$CombatStatsImplCopyWith(
|
|
_$CombatStatsImpl value,
|
|
$Res Function(_$CombatStatsImpl) then,
|
|
) = __$$CombatStatsImplCopyWithImpl<$Res>;
|
|
@override
|
|
@useResult
|
|
$Res call({
|
|
int str,
|
|
int con,
|
|
int dex,
|
|
int intelligence,
|
|
int wis,
|
|
int cha,
|
|
int atk,
|
|
int def,
|
|
int magAtk,
|
|
int magDef,
|
|
double criRate,
|
|
double criDamage,
|
|
double evasion,
|
|
double accuracy,
|
|
double blockRate,
|
|
double parryRate,
|
|
int attackDelayMs,
|
|
int hpMax,
|
|
int hpCurrent,
|
|
int mpMax,
|
|
int mpCurrent,
|
|
});
|
|
}
|
|
|
|
/// @nodoc
|
|
class __$$CombatStatsImplCopyWithImpl<$Res>
|
|
extends _$CombatStatsCopyWithImpl<$Res, _$CombatStatsImpl>
|
|
implements _$$CombatStatsImplCopyWith<$Res> {
|
|
__$$CombatStatsImplCopyWithImpl(
|
|
_$CombatStatsImpl _value,
|
|
$Res Function(_$CombatStatsImpl) _then,
|
|
) : super(_value, _then);
|
|
|
|
/// Create a copy of CombatStats
|
|
/// with the given fields replaced by the non-null parameter values.
|
|
@pragma('vm:prefer-inline')
|
|
@override
|
|
$Res call({
|
|
Object? str = null,
|
|
Object? con = null,
|
|
Object? dex = null,
|
|
Object? intelligence = null,
|
|
Object? wis = null,
|
|
Object? cha = null,
|
|
Object? atk = null,
|
|
Object? def = null,
|
|
Object? magAtk = null,
|
|
Object? magDef = null,
|
|
Object? criRate = null,
|
|
Object? criDamage = null,
|
|
Object? evasion = null,
|
|
Object? accuracy = null,
|
|
Object? blockRate = null,
|
|
Object? parryRate = null,
|
|
Object? attackDelayMs = null,
|
|
Object? hpMax = null,
|
|
Object? hpCurrent = null,
|
|
Object? mpMax = null,
|
|
Object? mpCurrent = null,
|
|
}) {
|
|
return _then(
|
|
_$CombatStatsImpl(
|
|
str: null == str
|
|
? _value.str
|
|
: str // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
con: null == con
|
|
? _value.con
|
|
: con // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
dex: null == dex
|
|
? _value.dex
|
|
: dex // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
intelligence: null == intelligence
|
|
? _value.intelligence
|
|
: intelligence // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
wis: null == wis
|
|
? _value.wis
|
|
: wis // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
cha: null == cha
|
|
? _value.cha
|
|
: cha // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
atk: null == atk
|
|
? _value.atk
|
|
: atk // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
def: null == def
|
|
? _value.def
|
|
: def // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
magAtk: null == magAtk
|
|
? _value.magAtk
|
|
: magAtk // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
magDef: null == magDef
|
|
? _value.magDef
|
|
: magDef // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
criRate: null == criRate
|
|
? _value.criRate
|
|
: criRate // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
criDamage: null == criDamage
|
|
? _value.criDamage
|
|
: criDamage // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
evasion: null == evasion
|
|
? _value.evasion
|
|
: evasion // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
accuracy: null == accuracy
|
|
? _value.accuracy
|
|
: accuracy // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
blockRate: null == blockRate
|
|
? _value.blockRate
|
|
: blockRate // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
parryRate: null == parryRate
|
|
? _value.parryRate
|
|
: parryRate // ignore: cast_nullable_to_non_nullable
|
|
as double,
|
|
attackDelayMs: null == attackDelayMs
|
|
? _value.attackDelayMs
|
|
: attackDelayMs // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
hpMax: null == hpMax
|
|
? _value.hpMax
|
|
: hpMax // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
hpCurrent: null == hpCurrent
|
|
? _value.hpCurrent
|
|
: hpCurrent // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
mpMax: null == mpMax
|
|
? _value.mpMax
|
|
: mpMax // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
mpCurrent: null == mpCurrent
|
|
? _value.mpCurrent
|
|
: mpCurrent // ignore: cast_nullable_to_non_nullable
|
|
as int,
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
/// @nodoc
|
|
@JsonSerializable()
|
|
class _$CombatStatsImpl extends _CombatStats {
|
|
const _$CombatStatsImpl({
|
|
required this.str,
|
|
required this.con,
|
|
required this.dex,
|
|
required this.intelligence,
|
|
required this.wis,
|
|
required this.cha,
|
|
required this.atk,
|
|
required this.def,
|
|
required this.magAtk,
|
|
required this.magDef,
|
|
required this.criRate,
|
|
required this.criDamage,
|
|
required this.evasion,
|
|
required this.accuracy,
|
|
required this.blockRate,
|
|
required this.parryRate,
|
|
required this.attackDelayMs,
|
|
required this.hpMax,
|
|
required this.hpCurrent,
|
|
required this.mpMax,
|
|
required this.mpCurrent,
|
|
}) : super._();
|
|
|
|
factory _$CombatStatsImpl.fromJson(Map<String, dynamic> json) =>
|
|
_$$CombatStatsImplFromJson(json);
|
|
|
|
// 기본 스탯
|
|
/// 힘: 물리 공격력 보정
|
|
@override
|
|
final int str;
|
|
|
|
/// 체력: HP, 방어력 보정
|
|
@override
|
|
final int con;
|
|
|
|
/// 민첩: 회피율, 크리티컬율, 명중률, 공격 속도
|
|
@override
|
|
final int dex;
|
|
|
|
/// 지능: 마법 공격력, MP
|
|
@override
|
|
final int intelligence;
|
|
|
|
/// 지혜: 마법 방어력, MP 회복
|
|
@override
|
|
final int wis;
|
|
|
|
/// 매력: 상점 가격, 드롭률 보정
|
|
@override
|
|
final int cha;
|
|
// 파생 스탯 (전투용)
|
|
/// 물리 공격력
|
|
@override
|
|
final int atk;
|
|
|
|
/// 물리 방어력
|
|
@override
|
|
final int def;
|
|
|
|
/// 마법 공격력
|
|
@override
|
|
final int magAtk;
|
|
|
|
/// 마법 방어력
|
|
@override
|
|
final int magDef;
|
|
|
|
/// 크리티컬 확률 (0.0 ~ 1.0)
|
|
@override
|
|
final double criRate;
|
|
|
|
/// 크리티컬 데미지 배율 (1.5 ~ 3.0)
|
|
@override
|
|
final double criDamage;
|
|
|
|
/// 회피율 (0.0 ~ 0.5)
|
|
@override
|
|
final double evasion;
|
|
|
|
/// 명중률 (0.8 ~ 1.0)
|
|
@override
|
|
final double accuracy;
|
|
|
|
/// 방패 방어율 (0.0 ~ 0.4)
|
|
@override
|
|
final double blockRate;
|
|
|
|
/// 무기로 쳐내기 확률 (0.0 ~ 0.3)
|
|
@override
|
|
final double parryRate;
|
|
|
|
/// 공격 딜레이 (밀리초)
|
|
@override
|
|
final int attackDelayMs;
|
|
// 자원
|
|
/// 최대 HP
|
|
@override
|
|
final int hpMax;
|
|
|
|
/// 현재 HP
|
|
@override
|
|
final int hpCurrent;
|
|
|
|
/// 최대 MP
|
|
@override
|
|
final int mpMax;
|
|
|
|
/// 현재 MP
|
|
@override
|
|
final int mpCurrent;
|
|
|
|
@override
|
|
String toString() {
|
|
return 'CombatStats(str: $str, con: $con, dex: $dex, intelligence: $intelligence, wis: $wis, cha: $cha, atk: $atk, def: $def, magAtk: $magAtk, magDef: $magDef, criRate: $criRate, criDamage: $criDamage, evasion: $evasion, accuracy: $accuracy, blockRate: $blockRate, parryRate: $parryRate, attackDelayMs: $attackDelayMs, hpMax: $hpMax, hpCurrent: $hpCurrent, mpMax: $mpMax, mpCurrent: $mpCurrent)';
|
|
}
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
return identical(this, other) ||
|
|
(other.runtimeType == runtimeType &&
|
|
other is _$CombatStatsImpl &&
|
|
(identical(other.str, str) || other.str == str) &&
|
|
(identical(other.con, con) || other.con == con) &&
|
|
(identical(other.dex, dex) || other.dex == dex) &&
|
|
(identical(other.intelligence, intelligence) ||
|
|
other.intelligence == intelligence) &&
|
|
(identical(other.wis, wis) || other.wis == wis) &&
|
|
(identical(other.cha, cha) || other.cha == cha) &&
|
|
(identical(other.atk, atk) || other.atk == atk) &&
|
|
(identical(other.def, def) || other.def == def) &&
|
|
(identical(other.magAtk, magAtk) || other.magAtk == magAtk) &&
|
|
(identical(other.magDef, magDef) || other.magDef == magDef) &&
|
|
(identical(other.criRate, criRate) || other.criRate == criRate) &&
|
|
(identical(other.criDamage, criDamage) ||
|
|
other.criDamage == criDamage) &&
|
|
(identical(other.evasion, evasion) || other.evasion == evasion) &&
|
|
(identical(other.accuracy, accuracy) ||
|
|
other.accuracy == accuracy) &&
|
|
(identical(other.blockRate, blockRate) ||
|
|
other.blockRate == blockRate) &&
|
|
(identical(other.parryRate, parryRate) ||
|
|
other.parryRate == parryRate) &&
|
|
(identical(other.attackDelayMs, attackDelayMs) ||
|
|
other.attackDelayMs == attackDelayMs) &&
|
|
(identical(other.hpMax, hpMax) || other.hpMax == hpMax) &&
|
|
(identical(other.hpCurrent, hpCurrent) ||
|
|
other.hpCurrent == hpCurrent) &&
|
|
(identical(other.mpMax, mpMax) || other.mpMax == mpMax) &&
|
|
(identical(other.mpCurrent, mpCurrent) ||
|
|
other.mpCurrent == mpCurrent));
|
|
}
|
|
|
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
@override
|
|
int get hashCode => Object.hashAll([
|
|
runtimeType,
|
|
str,
|
|
con,
|
|
dex,
|
|
intelligence,
|
|
wis,
|
|
cha,
|
|
atk,
|
|
def,
|
|
magAtk,
|
|
magDef,
|
|
criRate,
|
|
criDamage,
|
|
evasion,
|
|
accuracy,
|
|
blockRate,
|
|
parryRate,
|
|
attackDelayMs,
|
|
hpMax,
|
|
hpCurrent,
|
|
mpMax,
|
|
mpCurrent,
|
|
]);
|
|
|
|
/// Create a copy of CombatStats
|
|
/// with the given fields replaced by the non-null parameter values.
|
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
@override
|
|
@pragma('vm:prefer-inline')
|
|
_$$CombatStatsImplCopyWith<_$CombatStatsImpl> get copyWith =>
|
|
__$$CombatStatsImplCopyWithImpl<_$CombatStatsImpl>(this, _$identity);
|
|
|
|
@override
|
|
Map<String, dynamic> toJson() {
|
|
return _$$CombatStatsImplToJson(this);
|
|
}
|
|
}
|
|
|
|
abstract class _CombatStats extends CombatStats {
|
|
const factory _CombatStats({
|
|
required final int str,
|
|
required final int con,
|
|
required final int dex,
|
|
required final int intelligence,
|
|
required final int wis,
|
|
required final int cha,
|
|
required final int atk,
|
|
required final int def,
|
|
required final int magAtk,
|
|
required final int magDef,
|
|
required final double criRate,
|
|
required final double criDamage,
|
|
required final double evasion,
|
|
required final double accuracy,
|
|
required final double blockRate,
|
|
required final double parryRate,
|
|
required final int attackDelayMs,
|
|
required final int hpMax,
|
|
required final int hpCurrent,
|
|
required final int mpMax,
|
|
required final int mpCurrent,
|
|
}) = _$CombatStatsImpl;
|
|
const _CombatStats._() : super._();
|
|
|
|
factory _CombatStats.fromJson(Map<String, dynamic> json) =
|
|
_$CombatStatsImpl.fromJson;
|
|
|
|
// 기본 스탯
|
|
/// 힘: 물리 공격력 보정
|
|
@override
|
|
int get str;
|
|
|
|
/// 체력: HP, 방어력 보정
|
|
@override
|
|
int get con;
|
|
|
|
/// 민첩: 회피율, 크리티컬율, 명중률, 공격 속도
|
|
@override
|
|
int get dex;
|
|
|
|
/// 지능: 마법 공격력, MP
|
|
@override
|
|
int get intelligence;
|
|
|
|
/// 지혜: 마법 방어력, MP 회복
|
|
@override
|
|
int get wis;
|
|
|
|
/// 매력: 상점 가격, 드롭률 보정
|
|
@override
|
|
int get cha; // 파생 스탯 (전투용)
|
|
/// 물리 공격력
|
|
@override
|
|
int get atk;
|
|
|
|
/// 물리 방어력
|
|
@override
|
|
int get def;
|
|
|
|
/// 마법 공격력
|
|
@override
|
|
int get magAtk;
|
|
|
|
/// 마법 방어력
|
|
@override
|
|
int get magDef;
|
|
|
|
/// 크리티컬 확률 (0.0 ~ 1.0)
|
|
@override
|
|
double get criRate;
|
|
|
|
/// 크리티컬 데미지 배율 (1.5 ~ 3.0)
|
|
@override
|
|
double get criDamage;
|
|
|
|
/// 회피율 (0.0 ~ 0.5)
|
|
@override
|
|
double get evasion;
|
|
|
|
/// 명중률 (0.8 ~ 1.0)
|
|
@override
|
|
double get accuracy;
|
|
|
|
/// 방패 방어율 (0.0 ~ 0.4)
|
|
@override
|
|
double get blockRate;
|
|
|
|
/// 무기로 쳐내기 확률 (0.0 ~ 0.3)
|
|
@override
|
|
double get parryRate;
|
|
|
|
/// 공격 딜레이 (밀리초)
|
|
@override
|
|
int get attackDelayMs; // 자원
|
|
/// 최대 HP
|
|
@override
|
|
int get hpMax;
|
|
|
|
/// 현재 HP
|
|
@override
|
|
int get hpCurrent;
|
|
|
|
/// 최대 MP
|
|
@override
|
|
int get mpMax;
|
|
|
|
/// 현재 MP
|
|
@override
|
|
int get mpCurrent;
|
|
|
|
/// Create a copy of CombatStats
|
|
/// with the given fields replaced by the non-null parameter values.
|
|
@override
|
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
_$$CombatStatsImplCopyWith<_$CombatStatsImpl> get copyWith =>
|
|
throw _privateConstructorUsedError;
|
|
}
|