Дополнительные бонусы. Тема сырая. Попытаюсь развернуть практичнее, для
осознания предложения не только для "Тех. отдела" а и для юзеров.
Бонусы в смысле - "объективные, физические".
Представьте себе поле битвы, за ЭС, или уран....
В бою:
1) Ломаются экипировка, оружие.
2) Используется - дым, свет, кто и другие виды гранат кидает.
К примеру - Оборонительные/наступательные гранаты, по сути, с фраги, можно
унести (убить) до 8 человек (Ну 10, максимум, при удачном расположении, и
броске, и умении владением) как и гранатомёты.
3) Используется оружие, и других видов (остальных)
Все мы прекрасно знаем, что происходят мощные разрушения, как построек, так и
бойцов.
4) Оружие используемое, и экипировка. Завод это, планта, Эс, или шахта.
Не верим ли мы в магию в Гандже ? "Модификатор/улучшение"
(коратко):
Модификаторы параметров
93
C# --- Руководство по C# --- Модификаторы параметров
Mетоды могут как принимать, так и не принимать параметров, а также возвращать
или не возвращать значения вызывающей стороне. Хотя определение метода в С#
выглядит довольно понятно, существует несколько ключевых слов, с помощью которых
можно управлять способом передачи аргументов интересующему методу:
Модификатор параметра Описание
(отсутствует) Если параметр не сопровождается модификатором, предполагается,
что он должен передаваться по значению, т.е. вызываемый метод должен получать
копию исходных данных
out Выходные параметры должны присваиваться вызываемым методом (и,
следовательно, передаваться по ссылке). Если параметрам out в вызываемом методе
значения не присвоены, компилятор сообщит об ошибке
ref Это значение первоначально присваивается вызывающим кодом и при желании
может повторно присваиваться в вызываемом методе (поскольку данные также
передаются по ссылке). Если параметрам ref в вызываемом методе значения не
присвоены, компилятор никакой ошибки генерировать не будет
params Этот модификатор позволяет передавать в виде одного логического
параметра переменное количество аргументов. В каждом методе может присутствовать
только один модификатор params и он должен обязательно указываться последним в
списке параметров. В реальности необходимость в использовании модификатора
params возникает не особо часто, однако он применяется во многих методах внутри
библиотек базовых классов
Нередко требуется, чтобы метод оперировал теми аргументами, которые ему
передаются. Характерным тому примером служит метод Swap(), осуществляющий
перестановку значений своих аргументов. Но поскольку аргументы простых типов
передаются по значению, то, используя выбираемый в С# по умолчанию механизм
вызова по значению для передачи аргумента параметру, невозможно написать метод,
меняющий местами значения двух его аргументов, например типа int. Это
затруднение разрешает модификатор ref.
Как вам должно быть уже известно, значение возвращается из метода вызывающей
части программы с помощью оператора return. Но метод может одновременно
возвратить лишь одно значение. А что, если из метода требуется возвратить два
или более фрагментов информации, например, целую и дробную части числового
значения с плавающей точкой? Такой метод можно написать, используя модификатор
out.
Давайте отдельно рассмотрим роль каждого из вышеуказанных ключевых слов.
Модификатор ref
Модификатор параметра ref принудительно организует вызов по ссылке, а не по
значению. Этот модификатор указывается как при объявлении, так и при вызове
метода.
Параметры, сопровождаемые таким модификатором, называются ссылочными и
применяются, когда нужно позволить методу выполнять операции и обычно также
изменять значения различных элементов данных, объявляемых в вызывающем коде
(например, в процедуре сортировки или обмена). Обратите внимание на следующие
отличия между ссылочными и выходными параметрами:
Выходные параметры
Это параметры, которые не нужно инициализировать перед передачей методу.
Причина в том, что метод сам должен присваивать значения выходным параметрам
перед выходом.
Ссылочные параметры
Эти параметры нужно обязательно инициализировать перед передачей методу.
Причина в том, что они подразумевают передачу ссылки на уже существующую
переменную. Если первоначальное значение ей не присвоено, это будет равнозначно
выполнению операции над неинициализированной локальной переменной.
В отношении модификатора ref необходимо иметь в виду следующее. Аргументу,
передаваемому по ссылке с помощью этого модификатора, должно быть присвоено
значение до вызова метода. Дело в том, что в методе, получающем такой аргумент в
качестве параметра, предполагается, что параметр ссылается на действительное
значение. Следовательно, при использовании модификатора ref в методе нельзя
задать первоначальное значение аргумента.
Модификатор out
Модификатор параметра out подобен модификатору ref, за одним исключением: он
служит только для передачи значения за пределы метода. Поэтому переменной,
используемой в качестве параметра out, не нужно (да и бесполезно) присваивать
какое-то значение. Более того, в методе параметр out считается
неинициализированным, т.е. предполагается, что у него отсутствует первоначальное
значение. Это означает, что значение должно быть присвоено данному параметру в
методе до его завершения. Следовательно, после вызова метода параметр out будет
содержать некоторое значение.
Обратите внимание, что использование модификатора out в данном примере позволяет
возвращать из метода сразу четыре значения.
Модификатор params
В С# поддерживается использование массивов параметров за счет применения
ключевого слова params. Ключевое слово params позволяет передавать методу
переменное количество аргументов одного типа в виде единственного логического
параметра. Аргументы, помеченные ключевым словом params, могут обрабатываться,
если вызывающий код на их месте передает строго типизированный массив или
разделенный запятыми список элементов.
В тех случаях, когда у метода имеются обычные параметры, а также параметр
переменной длины типа params, он должен быть указан последним в списке
параметров данного метода. Но в любом случае параметр типа params должен быть
единственным.
И так - Магия ли это ? :) Не мне решать, я лишь считаю, что нет, и, обращаюсь к
физике - Что, улучшенная (каким либо образом, пушка, или броня)
экипировка/оружие, использует не стандартную сетку тела....
1. оружие: Стреляет бронебойными, переделываются затворы, и т.д. Как и поломка,
отваливаются части....
2. Экипировка: Толи навешивается гаджеты, Толи слои брони...
Суть:
Кто убирает поле боя после нападений...
1) Остатки на поле боя, просто ошеломляют, сколько отваливается/отбивается
частей, оружия/экипировки и падает на пол.
2) Убитые солдаты, лежащие на полу, в экипировке, с рядом лежащим оружием.
3) "Недвига" и то что происходит с ней, при использовании, взрывчатых веществ,
танков, базук, взрывов... Разрушения!
Такие же по сути, сталь, пластик, уран, изготавливаемая продукция......
Предлажение:
Бонусы после боя, в виде - Ресурсов, изготавливаемой продукции при нападении на
"N" недвигу, зап части к оруужию, броне....(Примерно, спонтанно выложил, вот
заканчиваю)
Гильзы (от дробовика к стати, их можно еще пару раз использовать, 2/3 раза они
еще выстрелят, в зависимости от материала, из которого сделаны)также гильзы
Снайпера, снайпер стреляет мало (1/4 выстрела в бою) и по любому бронебойными,
гильзы там можно пособирать и продать, хоть что-то окупится... Просто -
металлолом, проводка, строительный мусор, и все то что можно
использовать/переработать на метал....
После боя, кто-то что-то, по сути то, может что-то прихватить, с собой, в ту
сумку, в которой носятся "ресурсы"
Типа, рандомно: В бою вы подобрали (такое-то и такое-то, в таком-то и таком-то
количестве)
Вот и все, что я предлагаю вам, обсудить. |